2

我有以下内容docker-compose.yml

version: '3'

services:
  web:
    build: 
      context: .
      dockerfile: ./.docker/node.dockerfile
    volumes:
      - D:\Proj\Web:/app
    ports:
      - '3000:3000'
    depends_on: 
      - 'db'
    networks:
      - holder-network
    restart: on-failure
    tty: true


  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - holder-network
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: P@ssw0rd
      MYSQL_DATABASE: holder_db
      MYSQL_USER: holder_usr
      MYSQL_PASSWORD: P@ssw0rd


networks:
  holder-network:
    driver: bridge

volumes:
  db_data:

node.dockerfile

FROM node:7.10

MAINTAINER Juliano Nunes

RUN mkdir /var/www

RUN npm install nodemon -g

WORKDIR /var/www

ADD . /var/www

RUN npm install

CMD nodemon

我正在D:\Proj\Web从主机更改文件,但它不会更新容器中的文件。为什么?

4

2 回答 2

3

我发现了错误。我docker-compose.yml/app用作路径并且node.dockerfile正在使用/var/www.

这是更新的(工作)版本:

version: '3'

services:
  web:
    build: 
      context: .
      dockerfile: ./.docker/node.dockerfile
    volumes:
      - D:\Proj\Web:/var/www
    ports:
      - '3000:3000'
    depends_on: 
      - 'db'
    networks:
      - holder-network
    restart: on-failure
    tty: true


  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - holder-network
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: P@ssw0rd
      MYSQL_DATABASE: holder_db
      MYSQL_USER: holder_usr
      MYSQL_PASSWORD: P@ssw0rd


networks:
  holder-network:
    driver: bridge

volumes:
  db_data:
于 2017-05-22T13:12:15.277 回答
0

要在 docker for windows 上运行的容器中映射主机卷,您需要确保将驱动器共享到嵌入式 VM 中。否则,该目录将从 VM 的文件系统挂载,该文件系统在该位置为空。您需要进入 Windows 上的 docker 设置并将 D 盘添加到共享目录列表中。在此处查看 docker 的文档:https ://docs.docker.com/docker-for-windows/#shared-drives

于 2017-05-22T00:10:42.893 回答