Docker 使用 pm2 start 时以代码 0 退出
Docker exits with code 0 when using pm2 start
我的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?
问题是 pm2 start
运行s pm2 作为守护进程 ("in the background"),Docker 不知道。
您需要使用pm2-runtime
使其在前台运行:
CMD [ "pm2-runtime", "start", "npm", "--", "start" ]
我的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?
问题是 pm2 start
运行s pm2 作为守护进程 ("in the background"),Docker 不知道。
您需要使用pm2-runtime
使其在前台运行:
CMD [ "pm2-runtime", "start", "npm", "--", "start" ]