我正在使用运行良好的Docker。
我可以使用docker-compose启动Docker映像。
docker-compose rm nodejs; docker-compose rm db; docker-compose up --build
我使用以下方式将外壳连接到Docker容器
docker exec -it nodejs_nodejs_1 bash
我可以查看容器内的文件
(inside container)
cat server.js
现在,当我server.js
在主机内编辑文件时,我希望容器内的文件更改而不必重新启动Docker。
我试图添加volumes
到docker-compose.yml
文件或Dockerfile中,但是以某种方式我无法使其正常工作。
(Dockerfile, not working)
FROM node:10
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
VOLUMES ["/usr/src/app"]
EXPOSE 8080
CMD [ "npm", "run", "watch" ]
要么
(docker-compose.yml, not working)
version: "3.3"
services:
nodejs:
build: ./nodejs-server
ports:
- "8001:8080"
links:
- db:db
env_file:
- ./.env-example
volumes:
- src: /usr/src/app
db:
build: ./mysql-server
volumes:
- ./mysql-server/data:/docker-entrypoint-initdb.d #A folder /mysql-server/data with a .sql file needs to exist
env_file:
- ./.env-example
volumes:
src:
某处可能有一个简单的指南,但是我还没有找到。
如果要在容器中显示文件的副本,请使用绑定安装卷(也称为主机卷)而不是命名卷。
假设您的docker-compose.yml文件位于您想要在/ usr / src / app中的位置的根目录中,那么您可以按如下所示更改docker-compose.yml:
version: "3.3"
services:
nodejs:
build: ./nodejs-server
ports:
- "8001:8080"
links:
- db:db
env_file:
- ./.env-example
volumes:
- .:/usr/src/app
db:
build: ./mysql-server
volumes:
- ./mysql-server/data:/docker-entrypoint-initdb.d #A folder /mysql-server/data with a .sql file needs to exist
env_file:
- ./.env-example
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句