在docker容器中不能pm2列表

时间:2015-06-13 08:46:44

标签: node.js docker pm2

我使用Node.js和pm2构建Docker镜像。我用以下内容启动了容器:

docker run -d --name test -p 22 myImage

然后我带着:

进入容器
docker exec -it test /bin/bash

在容器中,执行命令:

pm2 list

它停留在这里:

enter image description here

P.s。:如果我在CMD pm2 start app.js中添加Dockerfile,我的应用程序在Docker容器中运行良好。

2 个答案:

答案 0 :(得分:5)

如果您的dockerfile CMD是pm2命令,那么您必须包含--no-daemon arg选项,以便pm2在前台运行,因此您的docker容器继续运行。

示例Dockerfile CMD:

CMD ["pm2", "start", "app.js", "--no-daemon"]

否则,如果没有--no-daemon,pm2将作为后台进程启动,而docker认为pm2命令的执行已完成并且已停止。

请参阅https://github.com/Unitech/PM2/issues/259

答案 1 :(得分:2)

CMD ["pm2-docker", "pm2.yaml"]

这是新方法。

请不要使用以前的方法。