使用pm2 start时,Docker退出代码为0

问题描述 投票:0回答:1

我的Dockerfile包含pm2 start命令如下:

FROM node:10

WORKDIR /usr/src/app

COPY . .

# ...

EXPOSE 8080

CMD [ "pm2", "start", "npm", "--", "start" ]

但是,在pm2日志成功启动后,容器会立即退出:

[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /usr/local/bin/npm in fork_mode (1 instance)
[PM2] Done.

如何使容器保持与pm2一起运行?

node.js docker pm2
1个回答
1
投票

问题是pm2 start将pm2作为守护进程运行,而Docker并不知道。

您需要使用pm2-runtime使其在前台运行:

CMD [ "pm2-runtime", "start", "npm", "--", "start" ]

See pm2 "Container integration" docs.

© www.soinside.com 2019 - 2024. All rights reserved.