
[英]Why is container exiting immediately after executing docker run command?
[英]Why is my docker node container exiting
我正在尝试使用 docker-compose 运行节点容器 -
services:
node:
build:
context: nodejs/
ports:
- "3000:3000"
volumes:
- ../nodejs:/usr/src/app
working_dir: '/usr/src/app'
我的码头文件
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 run、npm run build 等)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.