我嘗試在Docker容器中重新加載我的節點js應用程序代碼。我使用pm2作爲進程管理器。這裏是我的配置: Dockerfile在docker容器中重新加載代碼。 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生產 - PM2開始--attach ecosystem.prod.config.json
我跑在CLI「泊塢窗,撰寫了」和它的作品,我能夠用我的本地主機上的應用程序交互:3000。但是,如果對代碼進行一些更改,它將不會顯示在網頁中。如何在碼頭中配置代碼重新加載?
P.S.最佳實踐問題:開發使用docker的東西真的可以嗎?或碼頭集裝箱最適合生產使用。
您是否驗證過您的容器中的文件已更新?這裏有兩個可能的問題。 Docker沒有正確更新文件,或者您的服務器沒有檢測到更改。您可以使用'docker-compose exec web sh'來獲得一個shell並驗證文件是否被正確修改。 – kichik
檢查。碼頭容器內的文件不會更新。 –