[英]How to mount host codes to container in docker?
我有一个非常简单的代码库,如下所示
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"]
我的Docker撰写文件
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": ""
}
]
更改代码后,它不会自动重新加载。 您必须重新启动该过程才能发生。
我建议在您的开发环境中使用Nodemon使其自动发生。 https://nodemon.io/
只要确保您没有将nodemon部署到生产中即可。 这不是为了那个。 这是一个开发工具。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.