我使用的是码头,运行良好。
我可以开始一个码头形象使用码头-合成。
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:也许有一个简单的指南,但我还没有找到它。
发布于 2019-03-11 14:17:05
如果希望文件的副本在容器中可见,请使用绑定挂载卷(也称为主机卷)而不是指定的卷。
假设您的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-examplehttps://stackoverflow.com/questions/55103676
复制相似问题