node 容器里面放脚本,并安装 pm2,启动容器时 CMD 没执行,怎么解决

2021-12-29 18:38:17 +08:00
 ling516

FROM docker.io/node:16.13 MAINTAINER clay RUN npm install -g npm@8.3.0 RUN npm install pm2 -g RUN mkdir -p /node/claystack COPY claystack-master /node/clay WORKDIR /node/clay ENV LANG C.UTF-8 EXPOSE 3001 CMD ["sh","pm2.sh"]

因为要执行两个 pm2 所以写了个 pm2.sh 放两个命令在里面 启动容器的 docker run -itd 镜像名称:标签 /bin/bash CMD 没有执行,怎么解决

1476 次点击
所在节点    Docker
5 条回复
ch2
2021-12-29 20:24:34 +08:00
docker logs 查看一下输出了什么
ling516
2021-12-29 20:42:29 +08:00
@ch2 正常输出 然后容器就自动关闭了
ch2
2021-12-29 20:56:38 +08:00
@ling516 #2
当你指定了-d 参数后容器仍然关闭时,那说明你的 pm2.sh 开启的子进程没有一个是阻塞的
解决办法是在你的 pm2.sh 最后加一行防止它退出的命令
比如说单纯加一行 /bin/bash 开个 bash
ling516
2021-12-29 21:04:18 +08:00
@ch2 谢谢 解决了 在 pm2 最后一个命令加了--no-daemon
flyhaozi
2021-12-29 22:27:46 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/825138

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX