3

Node.js と pm2 を使用して Docker イメージをビルドします。コンテナーを次のように開始しました。

docker run -d --name test -p 22 myImage

次に、次の方法でコンテナー内に入ります。

docker exec -it test /bin/bash

コンテナーで、次のコマンドを実行します。

pm2 list

そして、ここで立ち往生しました:

ここに画像の説明を入力

Ps : CMD pm2 start app.js.Dockerfile

4

2 に答える 2

6

dockerfile CMD が pm2 コマンドの場合、 --no-daemon arg オプションを含めて、pm2 がフォアグラウンドで実行され、docker コンテナーが引き続き実行されるようにします。

Dockerfile CMD の例:

CMD ["pm2", "start", "app.js", "--no-daemon"]

それ以外の場合、--no-daemon を指定しないと、pm2 はバックグラウンド プロセスとして起動し、docker は pm2 コマンドの実行が完了したと見なして停止します。

https://github.com/Unitech/PM2/issues/259を参照してください。

于 2015-07-24T04:51:28.013 に答える