如果使用docker部署的话,pm2是否还需要?还有,pm2部署到docker中总是启动不了

来源:14-2 pm2基本使用

慕设计9348276

2021-02-16

不过目前用pm2在docker中部署还没成功过,总是刚启动就停止,日志里也看不出问题,但是不用pm2却是可以正常运行的,百思不得其解。
下面是我的dockfile,注释了pm2的安装和执行就可以运行,但尝试用pm2的方式就是死活启动不了。老师可以帮忙看看原因吗?
FROM node:alpine
ENV NODE_ENV=production

RUN npm install pm2 -g

WORKDIR /user/src/app
COPY package*.json ./
RUN npm install
COPY . .

RUN pm2 install pm2-logrotate

EXPOSE 3000

CMD [ “npm”, “run”, “prd” ]

CMD [“node”, “/user/src/app/bin/www”]

写回答

2回答

双越

2021-02-16

docker 需要一个阻塞控制台的进程,才可以持续运行。

所以,Dockerfile 最后的 CMD 加一句:pm2 logs ,这样就可以阻塞控制台。

(我猜测你的 npm run prd ,是让 pm2 后台运行了,并没有阻塞控制台)

0
1
慕设计9348276
非常感谢!
2021-02-16
共1条回复

双越

2021-02-17

也可以关注一下我制作的《web 前端架构师课》https://class.imooc.com/sale/fearchitect 

服务端用的就是 github actions + docker 部署的测试环境,包括数据库、自动化测试、自动化部署等。

0
1
慕设计9348276
谢谢老师推荐,您说的这个课程我以前就了解过,内容非常丰富,难度也较大,里面的项目我估计跟你的editor那个开源项目也是有些关系的。很佩服您的专业能力,不过目前我在学的实战课就有十几门,很多都还没有学完,其中就有您的三门(nodejs两门,js设计模式一门),所以现在还不敢贪多学架构那门课,但后面空下来会去根据需要多去关注,再次谢谢老师!知识无价,师德无量!
2021-02-17
共1条回复

Node.js+Koa2框架生态实战 - 从零模拟新浪微博

用 Koa2 做真正的实战项目,不再只是增删改查的小白工程师

964 学习 · 388 问题

查看课程