web-dev-qa-db-ja.com

pm2とpm2-runtimeの違いは何ですか?

同じマシンで実行されているいくつかのプロジェクトを、それぞれ個別のドッカーに転送しています。これらのdockerプロジェクトの1つでpm2を使用して、何かがうまくいかない場合(揮発性のプロジェクト)にサービスが確実に再起動するようにしました。また、いくつかの例ではpm2-runtimepm2の。私はこれら2つの違いを探していましたが、具体的なものを見つけることができませんでした。

9
Ruan Kotovich

Pm2とpm2-runtimeの主な違いは

  • dockerコンテナ用に設計されたpm2-runtimeは、コンテナを実行し続けるアプリケーションをフォアグラウンドに保持します。
  • 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"]

enter image description here

コンテナが実行を継続し、ttyセッションを割り当てます。

ドキュメントから

Pm2-runtimeの目標は、アプリケーションを適切なNode.js実稼働環境にラップすることです。次のようなコンテナ内でNode.jsアプリケーションを実行するときの主要な問題を解決します。

高いアプリケーション信頼性を実現する2番目のプロセスフォールバックプロセスフロー制御自動アプリケーションモニタリングにより、常に正常かつ高パフォーマンスを維持自動ソースマップの検出とサポートの解決ファイル、カスタマイズ可能なログシステム、および運用環境でNode.jsアプリケーションを管理するその他の優れた機能。

docker-pm2-nodejs

1
Adiii