请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

不过目前用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回答

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

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

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

0 回复 有任何疑惑可以回复我~
双越 2021-02-17 08:27:29

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

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕设计9348276 #1
    谢谢老师推荐,您说的这个课程我以前就了解过,内容非常丰富,难度也较大,里面的项目我估计跟你的editor那个开源项目也是有些关系的。很佩服您的专业能力,不过目前我在学的实战课就有十几门,很多都还没有学完,其中就有您的三门(nodejs两门,js设计模式一门),所以现在还不敢贪多学架构那门课,但后面空下来会去根据需要多去关注,再次谢谢老师!知识无价,师德无量!
    回复 有任何疑惑可以回复我~ 2021-02-17 16:40:23
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信