首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在主机中编辑时,Docker容器中的文件没有更新

当我在主机中编辑时,Docker容器中的文件没有更新
EN

Stack Overflow用户
提问于 2019-03-11 14:06:24
回答 1查看 3.7K关注 0票数 2

我使用的是码头,运行良好。

我可以开始一个码头形象使用码头-合成。

代码语言:javascript
复制
docker-compose rm nodejs; docker-compose rm db; docker-compose up --build

我使用以下方法将外壳附加到Docker容器

代码语言:javascript
复制
docker exec -it nodejs_nodejs_1 bash

我可以查看容器内的文件。

代码语言:javascript
复制
(inside container)
cat server.js

现在,当我在主机中编辑server.js文件时,我希望容器中的文件可以更改,而不必重新启动Docker。

我试图将volumes添加到docker-compose.yml文件或Dockerfile中,但不知怎么我无法让它工作。

代码语言:javascript
复制
(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" ]

代码语言:javascript
复制
(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:

也许有一个简单的指南,但我还没有找到它。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-11 14:17:05

如果希望文件的副本在容器中可见,请使用绑定挂载卷(也称为主机卷)而不是指定的卷。

假设您的docker-compose.yml文件位于/usr/src/app中您想要的位置的根目录中,那么您可以按如下方式更改docker-compose.yml:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55103676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档