Docker for Windowsのコンテナを再起動してPM2を起動したいとき

Windowsでnode.jsのアプリをpm2で動かしたいとき。

まあその前に、dockerのmongodbやpostgresql等のサービスを先に起動したいケースもあるわけですが。

Hyper-Vの影響なのでしょうか?Windows起動後、docker-composeでコンテナを起動する時、既にコンテナが起動していて、docker-composeが上手く動かない場合がありました。

というわけで、最初にすべてのコンテナを停止後、docker-composeでサービスを起動、最後にpm2を起動したい場合、バッチファイルはこのような感じになるようです。

rem すべてのコンテナを最初に停止
for /f "tokens=*" %%i IN ('docker ps -q') do docker stop %%i

rem docker-composeでmonbodbを起動
cd /d C:\docker\mongo
docker-compose down
docker-compose up -d

rem postgresqlを起動
cd /d C:\docker\postgresql
docker-compose down
docker-compose up -d

rem pm2でnode.jsプロジェクトを起動
cd /d C:\node_project1
pm2 start "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" -- start

docker-composeのmongodb/mongo express起動はこちらの記事になります。

日本語モードのPostgreSQL/pgAdmin起動の記事はこちらになります。

Windowsのpm2でnpm startしたい場合、このような書き方が必要なようでしたので、覚書として記録させて頂きました。

スポンサーリンク

フォローする

スポンサーリンク