我有一个非常简单的代码库,如下所示
Dockerfile
docker-compose.yml
package.json
server.js
我的泊坞文件
FROM node:alpine
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY package.json /usr/src/app
RUN npm install
COPY . /usr/src/app
EXPOSE 3000
CMD ["npm", "start"]
我的码头撰写文件
version: "3"
services:
web:
build: .
volumes:
- .:/usr/src/app
- /usr/src/app/node_modules
ports:
- "3000:3000"
depends_on:
- postgres
postgres:
image: postgres:9.6-alpine
ports:
- 5432:5432
我可以成功构建并docker-compose up
但我无法将源代码安装到容器中(这意味着当我编辑server.js
并刷新浏览器时,它不会更改)。
我不确定缺少哪些部分。有人可以帮我解决一下吗?非常感谢!
更新: 当我检查容器时,这是挂载信息。
"Mounts": [
{
"Type": "bind",
"Source": "/Users/JJ/myApp",
"Destination": "/usr/src/app",
"Mode": "rw",
"RW": true,
"Propagation": ""
},
{
"Type": "volume",
"Name": "12e5a018e711511bfe14a8ea97465d7966696dc62a57727eeafd0de2b4a1e915",
"Source": "/var/lib/docker/volumes/12e5a018e711511bfe14a8ea97465d7966696dc62a57727eeafd0de2b4a1e915/_data",
"Destination": "/usr/src/app/node_modules",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
]
答案 0 :(得分:2)
更改密码时,您的代码不会自动重新加载。您必须重新启动该过程才能实现。
我建议您在开发环境中使用Nodemon来自动执行此操作。 https://nodemon.io/
确保不将nodemon部署到生产环境。它并不意味着这一点。这是一个开发工具。