web-dev-qa-db-fra.com

Quelle est la différence entre pm2 et pm2-runtime?

J'ai transféré certains projets qui s'exécutaient sur la même machine vers des dockers individuels chacun. J'ai essayé d'utiliser pm2 sur l'un de ces projets de docker pour vous assurer que le service redémarrerait en cas de problème (c'est un projet volatile) et certains des exemples exigent que le Dockerfile utilise pm2-runtime au lieu de pm2. J'ai cherché les différences de ces deux mais je n'ai pas trouvé quelque chose de spécifique, quelqu'un pourrait-il aider?

9
Ruan Kotovich

La principale différence entre pm2 et pm2-runtime est

  • pm2-runtime conçu pour le conteneur Docker qui maintient une application au premier plan qui permet au conteneur de fonctionner,
  • pm2 est conçu pour une utilisation normale où vous envoyez ou exécutez l'application en arrière-plan.

En termes simples, la durée de vie du conteneur est la durée de vie de CMD ou entrypoint.

Par exemple

Dockerfile

FROM node:Alpine
RUN npm install pm2 -g
COPY . /app
WORKDIR /app
CMD [ "pm2", "start","/app/server.js"]

Dans ce cas, le conteneur mourra dès qu'il exécutera le processus.

Pour y faire face, vous avez 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"]

enter image description here

Comme le conteneur continue de fonctionner et qu'il alloue la session tty.

De la documentation

Le but de pm2-runtime est d'envelopper vos applications dans un environnement de production Node.js approprié. Il résout les problèmes majeurs lors de l'exécution des applications Node.js dans un conteneur comme:

Deuxième processus de secours pour une fiabilité élevée des applications Contrôle du flux de processus Surveillance automatique des applications pour la garder toujours saine et performante Découverte automatique de la carte source et prise en charge de la résolution De plus, l'utilisation de PM2 comme couche entre le conteneur et l'application apporte des fonctionnalités puissantes de PM2 comme la déclaration d'application fichier, système de journalisation personnalisable et d'autres fonctionnalités intéressantes pour gérer votre application Node.js dans l'environnement de production.

docker-pm2-nodejs

1
Adiii