为什么我的docker节点容器退出
我试图用docker-compose运行节点容器 –
services: node: build: context: nodejs/ ports: - "3000:3000" volumes: - ../nodejs:/usr/src/app working_dir: '/usr/src/app'
我的docker文件
FROM node:6.10 EXPOSE 3000
问题是它立即退出 –
$ docker-compose up Starting docker_node_1 Attaching to docker_node_1 docker_node_1 exited with code 0
日志中没有任何东西 – docker logs docker_node_1
什么也没有返回。
有一个package.json引用主脚本 –
{ ... "main": "server.js", ... }
而我的主要脚本只是一个简单的快递服务器 –
const express = require('express'); const app = express(); const port = 3000; app.listen(port, (err) => { if (err) { return console.log('something bad happened', err); } console.log(`server is listening on ${port}`); });
我想我错过了一些明显的东西,但是我看不到它是什么…
你没有指定你的docker command
。 这是代表container
的关键概念:某种孤立的过程(过程=命令,程序)
你可以在Dockerfile中做到这一点:
CMD npm start
或者在docker-compose.yml中:
services: node: command: npm start build: context: nodejs/ ports: - "3000:3000" volumes: - ../nodejs:/usr/src/app working_dir: '/usr/src/app'
两种方法都是相同的。 但编辑它作为您的需要(npm运行,npm运行构build等)