PM2是node进程管理工具,可以利用它来简化很多node应用管理的繁琐任务,如性能监控、自动重启、负载均衡等
- 使用简单
- 运维方便
- 自带监控
缺点:
- 分布式下无法进行统一的运维
- 需要登录到机器内进行运维
pm2和pm2-runtime之间的主要区别是
- pm2-runtime是为Docker容器设计的,它将应用程序置于前台,从而使容器保持运行状态.
- pm2专为在后台发送或运行应用程序的正常使用而设计.
简单来说,容器的寿命就是CMD或entrypoint的寿命.
例如
Dockerfile
FROM node:alpine
RUN npm install pm2 -g
COPY . /app
WORKDIR /app
CMD [ "pm2", "start","/app/server.js"]
在这种情况下,容器将在运行该进程后立即死亡.
要解决此问题,您需要 pm2-runtime
FROM node:alpine
RUN npm install pm2 -g
COPY . /app
WORKDIR /app
ENV NODE_ENV=development
CMD [ "pm2-runtime", "start","/app/bin/www"]
nodemon