Docker 什么';pm2和pm2运行时的区别是什么?

Docker 什么';pm2和pm2运行时的区别是什么?,docker,docker-compose,dockerfile,pm2,Docker,Docker Compose,Dockerfile,Pm2,我一直在将一些在同一台机器上执行的项目转移给各个码头工人。我曾尝试在其中一个docker项目上使用pm2,以确保如果出现问题(这是一个易失性项目),服务将重新启动,并且一些示例要求Dockerfile使用pm2运行时,而不是pm2。我一直在寻找这两者的区别,但我找不到具体的东西,有人能帮忙吗?pm2和pm2运行时之间的主要区别是 pm2运行时专为Docker容器设计,该容器使应用程序保持在前台,从而使容器保持运行 pm2设计用于在后台发送或运行应用程序的正常使用 简单地说,容器的寿命就是CM

我一直在将一些在同一台机器上执行的项目转移给各个码头工人。我曾尝试在其中一个docker项目上使用
pm2
,以确保如果出现问题(这是一个易失性项目),服务将重新启动,并且一些示例要求Dockerfile使用
pm2运行时
,而不是
pm2
。我一直在寻找这两者的区别,但我找不到具体的东西,有人能帮忙吗?

pm2和pm2运行时之间的主要区别是

  • pm2运行时专为Docker容器设计,该容器使应用程序保持在前台,从而使容器保持运行
  • pm2设计用于在后台发送或运行应用程序的正常使用
简单地说,容器的寿命就是
CMD
entrypoint
的寿命

比如说

Dockerfile

FROM node:alpine
RUN npm install pm2 -g
COPY . /app
WORKDIR /app
CMD [ "pm2", "start","/app/server.js"]
在这种情况下,容器将在运行进程后立即死亡

为了解决这个问题,您需要pm2运行时

FROM node:alpine
RUN npm install pm2 -g
COPY . /app
WORKDIR /app
ENV NODE_ENV=development
CMD [ "pm2-runtime", "start","/app/bin/www"]

当容器继续运行并分配tty会话时

从文件中

pm2运行时的目标是将您的应用程序包装到适当的 Node.js生产环境。它解决了运行时的主要问题 容器中的Node.js应用程序,如:

高应用程序可靠性流程的第二个流程回退 控制自动应用程序监控,使其始终处于正常状态 高性能自动源地图发现和解析支持 除此之外,使用PM2作为容器和容器之间的一层 应用程序带来了PM2强大的功能,如应用程序声明 文件、可自定义的日志系统和其他强大的功能来管理您的 生产环境中的Node.js应用程序