title: Bcrypt installation fails in Docker
body: <p>I've created a Node-application with MongoDB that runs in Docker. It worked fine until I included <a href="https://github.com/ncb000gt/node.bcrypt.js" rel="nofollow">node.bcrypt.js</a>. This makes Node crash with <code>node-gyp</code> and <code>bcrypt</code>.</p>
  
  <p>The app runs fine locally and on Heroku.</p>
  
  <p>I tried to install a few suggested packages that I found online, that were known to be needed based on error messages. This is why I've added a few extra dependencies, see the <code>node-gyp</code>-related line in the dockerfile below. </p>
  
  <p>Now it's gotten where I cannot find any more suggestions, but it still doens't work. I feel it's weird that it works both locally and on Heorku, but not on Docker, and therefore that it's something I'm missing.</p>
  
  <p>Thanks in advance.</p>
  
  <p>Error:</p>
  
  <pre><code>&gt; crowdshelf-server@1.0.0 start /server
  &gt; node index.js
  
    COPY Release/bcrypt_lib.node
  make: Leaving directory `/server/node_modules/bcrypt/build'
  module.js:338
      throw err;
            ^
  Error: Cannot find module './lib/topologies/server'
      at Function.Module._resolveFilename (module.js:336:15)
      at Function.Module._load (module.js:278:25)
      at Module.require (module.js:365:17)
      at require (module.js:384:17)
      at Object.&lt;anonymous&gt; (/server/node_modules/mongodb/node_modules/mongodb-core/index.js:3:13)
      at Module._compile (module.js:460:26)
      at Object.Module._extensions..js (module.js:478:10)
      at Module.load (module.js:355:32)
      at Function.Module._load (module.js:310:12)
      at Module.require (module.js:365:17)
      at require (module.js:384:17)
  
  npm ERR! Linux 3.13.0-58-generic
  npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "start"
  npm ERR! node v0.12.7
  npm ERR! npm  v2.11.3
  npm ERR! code ELIFECYCLE
  npm ERR! crowdshelf-server@1.0.0 start: `node index.js`
  npm ERR! Exit status 1
  </code></pre>
  
  <p>This is after I added a few installations to my Dockerfile, see the line after <code>node-gyp</code>. Dockerfile:</p>
  
  <pre><code># Base Docker-image on Ubuntu
  FROM    ubuntu:latest
  
  #install mongodb
  #install git, curl, python and mongo
  # node-gyp 
  RUN apt-get install -y build-essential make automake gcc g++ cpp libkrb5-dev libc6-dev man-db autoconf pkg-config 
  
  # Create the MongoDB data directory
  RUN mkdir -p /data/db
  
  # mongodb setup
  # Install NodeJS
  RUN curl --silent --location https://deb.nodesource.com/setup_0.12 | sudo bash -
  RUN apt-get update &amp;&amp; apt-get install -y nodejs
  RUN npm install -g node-gyp
  
  # Git-clone project
  # expose ports
  # Install dependencies and start server and database
  CMD cd /server &amp;&amp; sh start.sh
  </code></pre>
  
  <p>The <code>starth.sh</code>-script simply installs dependencies and starts both MongoDB and server.</p>
  
  <p><strong>EDIT:</strong>
  The <a href="https://github.com/ncb000gt/node.bcrypt.js" rel="nofollow">repo</a> tells me to check out the <a href="https://github.com/nodejs/node-gyp" rel="nofollow">node-gyp dependencies</a>, but I feel that's been covered by the Dockerfile shown above.</p>