Node.js 在docker容器中重新加载代码。PM2。节点js
我尝试在docker容器中重新加载我的NodeJS应用程序代码。我使用pm2作为过程管理器。以下是我的配置: DockerfileNode.js 在docker容器中重新加载代码。PM2。节点js,node.js,docker,pm2,Node.js,Docker,Pm2,我尝试在docker容器中重新加载我的NodeJS应用程序代码。我使用pm2作为过程管理器。以下是我的配置: Dockerfile FROM node:6.9.5 LABEL maintainer "denis.ostapenko2@gmail.com" 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
FROM node:6.9.5
LABEL maintainer "denis.ostapenko2@gmail.com"
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"]
生态系统.prod.config.json(又名pm2配置)
docker compose.yaml
version: "3"
services:
web:
build: .
volumes:
- ./:/koa2-app
ports:
- "3000:3000"
npm运行生产-
pm2启动--附加生态系统.prod.config.json
我在CLI中运行“docker compose up”,它可以工作,我可以在localhost:3000上与我的应用程序交互。但若对代码做一些修改,它将不会出现在web上。如何在docker内部配置代码重新加载
附言和最佳实践问题:使用docker的东西开发真的可以吗?或docker容器最适合生产使用 似乎您将代码复制到了一个地方,而卷在了另一个地方 尝试: 然后,当您在容器(IDE)外部更改js代码时,现在PM2能够看到更改,因此可以重新加载应用程序(您需要确保这一部分)
关于在开发环境中使用Docker:这是一件非常好的事情,因为有很多原因。例如,您为不同的环境管理相同的应用程序安装,从而减少了许多错误等。您是否验证了容器中的文件是否已更新?这里有两个可能的问题。Docker没有正确更新文件,或者您的服务器没有检测到更改。您可以使用
docker compose exec web sh
获取shell并验证文件是否正确修改。选中。docker容器中的文件没有更新。它对我有效。还感谢您的最佳实践问答!我简直不敢相信我没有看到docker构建工作目录和compose装载目标路径之间的差异。谢谢
version: "3"
services:
web:
build: .
volumes:
- ./:/koa2-app
ports:
- "3000:3000"
version: "3"
services:
web:
build: .
volumes:
- ./:/usr/src/koa2-app
ports:
- "3000:3000"