2017-04-06 2 views
1

호스트의 코드를 phpnginx 개의 컨테이너로 공유하려고합니다. docker-compose up를 실행하는 경우명명 된 볼륨을 사용하여 호스트에서 컨테이너로 데이터를 공유하는 방법은 무엇입니까?

version: "3" 
services: 
    php: 
    image: php:fpm 
    container_name: php 
    ports: 
     - 9000:9000 
    volumes: 
     - php_data:/var/www/html/ 

     # configs 
     - ./php/config:/usr/local/etc/php 

    nginx: 
    image: nginx 
    ports: 
     - 80:80 
    volumes: 
     - php_data:/var/www/html 

     # logs 
     - ./nginx/logs:/var/log/nginx 

     # configs 
     - ./nginx/config/default.conf:/etc/nginx/conf.d/default.conf:ro 
     - ./nginx/config/nginx.conf:/etc/nginx/nginx.conf:ro 

volumes: 
    php_data: 
    ./code 

오류 :

ERROR: In file './docker-compose.yml', volume 'php_data' must be a mapping not a string.

가 어떻게 고정 표시기-작성이 알 수 있도록해야합니까 내가 ./code 모두 nginx 및 PHP는 containers와 공유해야한다는, 여기 내 docker-compose.yml은? 당신이 여기에이 옵션이 볼륨 내 생각

에 ./code:{map 같은}을 설정해야하므로

+0

그 질문하지만 당신은 용기가 아니라 호스트 사이의 볼륨을 공유하는 것이 충분 경우 마지막 행을 제거 할 수 있습니다 "./code"에없는 대답 [documentation] (https://docs.docker.com/compose/compose-file/#volume-configuration-reference) – herm

답변

0

고정 표시기,이 매핑이 필요 말. 두 컨테이너의/var/www/html에 코드 맵을 공유하기 때문에.

옵션 1 설정 볼륨에서의/var/www/html지도 :

volumes: 
    php_data: 
    ./code:/var/www/html 

은 다음 용기에 /에/var에/www /에서 HTML을 변경합니다.

옵션 2

volumes: 
    php_data: 
    ./code:/ 
+0

에서'/ var/www/html을 컨테이너로/변경하십시오 ' 'docker-compose.yml' 안의 라인을 바꾸는 것을 의미합니까? 즉,'volumes : - php_data : /'? – Andru

관련 문제