2017-05-21 4 views
0

をマッピングされたI、次のドッキングウィンドウ-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: [email protected] 
     MYSQL_DATABASE: holder_db 
     MYSQL_USER: holder_usr 
     MYSQL_PASSWORD: [email protected] 


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の下にありますが、コンテナ内のファイルは更新されません。どうして?

答えて

1

私はこのエラーを発見しました。私の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: [email protected] 
     MYSQL_DATABASE: holder_db 
     MYSQL_USER: holder_usr 
     MYSQL_PASSWORD: [email protected] 


networks: 
    holder-network: 
    driver: bridge 

volumes: 
    db_data: 
+0

同じ問題、同じ解決策。ありがとう! – Ben

0

Windowsのdockerで実行されているコンテナにホストボリュームをマップするには、ドライブが組み込みVMと共有されていることを確認する必要があります。それ以外の場合、ディレクトリはその場所で空になるVMのファイルシステムからマウントされます。 Windowsのドッカー設定に入り、Dドライブを共有ディレクトリリストに追加する必要があります。これに関するドッカーのドキュメントを参照してください:https://docs.docker.com/docker-for-windows/#shared-drives

+0

ドライブすでにドッカーセッティング上で共有されています。

ここで更新(作業)バージョンがあります。コンテナ内のディレクトリは空ではなく、コンテナの起動時にファイルがコピーされますが、Windows(ホスト)からファイルを編集すると、その変更はゲストに反映されません。 –

+0

Dockerは、コンテナの開始時にファイルをコピーしません。これは、ディレクトリのコンテナへの直接マッピングです。ファイルが最初に更新されたが後で以前の状態に残っていることを確認するために使用しているコマンドは何ですか? – BMitch

+0

私は 'docker-compose.yml'で' node.dockerfile'以外のパスを参照していたことがわかりました。それは私の間違いでした。 –

関連する問題