如果使用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回答
-
docker 需要一个阻塞控制台的进程,才可以持续运行。
所以,Dockerfile 最后的 CMD 加一句:pm2 logs ,这样就可以阻塞控制台。
(我猜测你的 npm run prd ,是让 pm2 后台运行了,并没有阻塞控制台)
012021-02-16 -
双越
2021-02-17
也可以关注一下我制作的《web 前端架构师课》https://class.imooc.com/sale/fearchitect
服务端用的就是 github actions + docker 部署的测试环境,包括数据库、自动化测试、自动化部署等。
012021-02-17
相似问题