title: why docker container exits with code 0?
body: <p>I am currently trying to create a Messenger Bot with Botkit framework !</p>
  
  <p>Since I work on different computers I want to use docker to prevent any local configurations problems.</p>
  
  <p>Unfortunately, I am new to botkit AND docker.</p>
  
  <h2>file structure</h2>
  
  <pre><code>bot
  ├── README.md
  ├── docker
  │   ├── botkit
  │   │   └── Dockerfile
  │   └── node
  │       └── Dockerfile
  ├── docker-compose.yml
  ├── node_modules
  └── package.json
  
  4 directories, 5 files
  </code></pre>
  
  <h2>docker-compose.yml</h2>
  
  <pre><code>version: "2"
  services:
      node:
          build: ./docker/node
          volumes_from:
              - "app"
      botkit:
          build: ./docker/botkit
          links:
              - "node"
          volumes_from:
              - "app"
      app:
          image: "node:8"
          working_dir: /home/nook_bot
          environment:
              - NODE_ENV=production
          volumes:
              - .:/home/nook_bot
              - /home/nook_bot/node_modules
          command: "npm init --yes &amp;&amp; npm start"
  </code></pre>
  
  <h2>docker/botkit/Dockerfile</h2>
  
  <pre><code>FROM node:8
  RUN npm install botkit
  </code></pre>
  
  <h2>docker/node/Dockerfile</h2>
  
  <pre><code>FROM node:8
  EXPOSE 8888
  </code></pre>
  
  <h2>Steps to reproduce the error</h2>
  
  <p>When I run </p>
  
  <pre><code>docker-compose build
  </code></pre>
  
  <p>I've got</p>
  
  <pre><code>app uses an image, skipping
  Building node
  Step 1/2 : FROM node:8
  8: Pulling from library/node
  f2b6b4884fc8: Pull complete
  4fb899b4df21: Pull complete
  74eaa8be7221: Pull complete
  2d6e98fe4040: Pull complete
  452c06dec5fa: Pull complete
  7b3c215894de: Pull complete
  094529398b79: Pull complete
  449fe646e95b: Pull complete
  Digest: sha256:26e4c77f9f797c3993780943239fa79419f011dd93ae4e0097089e2145aeaa24
  Status: Downloaded newer image for node:8
   ---&gt; 4635bc7d130c
  Step 2/2 : EXPOSE 8888
   ---&gt; Running in 3a5be5fca913
  Removing intermediate container 3a5be5fca913
   ---&gt; 87cf54fd2907
  Successfully built 87cf54fd2907
  Successfully tagged nook_bot_node:latest
  Building botkit
  Step 1/2 : FROM node:8
   ---&gt; 4635bc7d130c
  Step 2/2 : RUN npm install botkit
   ---&gt; Running in d57d1ac5e112
  npm WARN deprecated node-uuid@1.4.8: Use uuid module instead
  npm WARN saveError ENOENT: no such file or directory, open '/package.json'
  npm notice created a lockfile as package-lock.json. You should commit this file.
  npm WARN enoent ENOENT: no such file or directory, open '/package.json'
  npm WARN !invalid#1 No description
  npm WARN !invalid#1 No repository field.
  npm WARN !invalid#1 No README data
  npm WARN !invalid#1 No license field.
  
  + botkit@0.6.13
  added 349 packages in 48.021s
  Removing intermediate container d57d1ac5e112
   ---&gt; 6530cdad7dfe
  Successfully built 6530cdad7dfe
  Successfully tagged nook_bot_botkit:latest
  </code></pre>
  
  <p>Then I do</p>
  
  <pre><code>docker-compose up
  </code></pre>
  
  <p>I get</p>
  
  <pre><code>Creating nook_bot_app_1 ... done
  Creating nook_bot_node_1 ... done
  Creating nook_bot_botkit_1 ... done
  Attaching to nook_bot_app_1, nook_bot_node_1, nook_bot_botkit_1
  app_1     | Wrote to /home/nook_bot/package.json:
  app_1     |
  app_1     | {
  app_1     |   "name": "nook_bot",
  app_1     |   "version": "1.0.0",
  app_1     |   "description": "",
  app_1     |   "main": "index.js",
  app_1     |   "dependencies": {},
  app_1     |   "devDependencies": {},
  app_1     |   "scripts": {
  app_1     |     "test": "echo \"Error: no test specified\" &amp;&amp; exit 1"
  app_1     |   },
  app_1     |   "repository": {
  app_1     |     "type": "git",
  app_1     |     "url": "git+https://github.com/Geoffrey42/nook_bot.git"
  app_1     |   },
  app_1     |   "keywords": [],
  app_1     |   "author": "",
  app_1     |   "license": "ISC",
  app_1     |   "bugs": {
  app_1     |     "url": "https://github.com/Geoffrey42/nook_bot/issues"
  app_1     |   },
  app_1     |   "homepage": "https://github.com/Geoffrey42/nook_bot#readme"
  app_1     | }
  app_1     |
  app_1     |
  nook_bot_node_1 exited with code 0
  nook_bot_app_1 exited with code 0
  nook_bot_botkit_1 exited with code 0
  </code></pre>
  
  <p>If I ran</p>
  
  <pre><code>docker exec -ti nook_bot_app_1 bash
  </code></pre>
  
  <p>I get</p>
  
  <pre><code>Error response from daemon: Container a4c9724bc954c6bab19a5953c2fea315b95caf64f26c8ca0b036ca3f037fd398 is not running
  </code></pre>
  
  <h2>logs</h2>
  
  <p>I ran</p>
  
  <pre><code>docker logs nook_bot_app_1
  </code></pre>
  
  <p>I get</p>
  
  <pre><code>Wrote to /home/nook_bot/package.json:
  
  {
    "name": "nook_bot",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "dependencies": {},
    "devDependencies": {},
    "scripts": {
      "test": "echo \"Error: no test specified\" &amp;&amp; exit 1"
    },
    "repository": {
      "type": "git",
      "url": "git+https://github.com/Geoffrey42/nook_bot.git"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "bugs": {
      "url": "https://github.com/Geoffrey42/nook_bot/issues"
    },
    "homepage": "https://github.com/Geoffrey42/nook_bot#readme"
  }
  </code></pre>
  
  <p>I don't understand how come docker doesn't find my package.json file since by running docker-compose build and up it does create the file. I suppose the exit code 0 issue come from here but I really don't understand why.
  Maybe I lack some basic understanding on how docker actually works.</p>
  
  <p>I searched for other questions about exit code 0 but none of the answers was helpful.</p>
  
  <p>In the end I just want to run bash on my app container in order to start building my bot.</p>
  
  <p>Thanks for any further help !</p>