ノードjsアプリケーションコードをドッカーコンテナ内にリロードしようとしました。プロセスマネージャーとしてpm2を使用します。ここに私の設定です: Dockerfileドッカーコンテナ内のコードを再読み込みします。 PM2。ノードjs
FROM node:6.9.5
LABEL maintainer "[email protected]"
RUN mkdir -p /usr/src/koa2-app
COPY . /usr/src/koa2-app
WORKDIR /usr/src/koa2-app
RUN npm i -g pm2
RUN npm install
EXPOSE 9000
CMD [ "npm", "run", "production"]
ecosystem.prod.config.json(別名PM2設定)
{
"apps" : [
{
"name" : "koa2-fp",
"script" : "./bin/www.js",
"watch" : true,
"merge_logs" : true,
"log_date_format": "YYYY-MM-DD HH:mm Z",
"env": {
"NODE_ENV": "production",
"PROTOCOL": "http",
"APP_PORT": 3000
},
"instances": 4,
"exec_mode" : "cluster_mode",
"autorestart": true
}
]
}
ドッキングウィンドウ-compose.yaml
version: "3"
services:
web:
build: .
volumes:
- ./:/koa2-app
ports:
- "3000:3000"
npm run 3000: - 生産 は私がローカルホスト上の私のアプリと対話することができるよ、私はCLIで「アップドッキングウィンドウ-作曲」を実行し、それが動作--attach ecosystem.prod.config.json
を開始PM2。しかし、いくつかのコードを変更すると、Webには表示されません。ドッカー内でコードの再読み込みを設定するにはどうすればよいですか?
P.S.ベストプラクティスの質問:ドッカーを使って開発することは本当にOKですか?または、ドッキング用の容器が生産用に最も好ましい。
ファイルがコンテナに更新されていることを確認しましたか?ここには2つの問題が考えられます。 Dockerがファイルを正しく更新しないか、サーバーが変更を検出しません。 'docker-compose exec web sh'を使ってシェルを取得し、ファイルが適切に修正されていることを確認することができます。 – kichik
チェック。ドッカーコンテナ内のファイルは更新されません。 –