2016-10-04 2 views
5

을 구성 .공유 컨테이너 정의는의 nginx 프록시 컨테이너 정의가 내 고정 표시기-작성에

포트 80을 사용하기 때문에 컨테이너를 매번 중지하지 않고 어떻게 할 수 있습니까? 그 아이디어는 다음과 같습니다. nginx-proxy 컨테이너가 실행 중이 아니면 이것을 실행하십시오. 그렇지 않으면 실행중인 컨테이너를 사용하십시오.

+0

Compose v2 사양을 사용하고 있습니까? –

+0

예. ... [쓸모없는 글자 쓰기] ... –

+0

나는 스크립트가 필요하다고 생각합니다. 뭔가 : ping 또는 포트 80을 사용하여 nginx를 확인하십시오. 그렇지 않으면 docker-run을 실행하여 nginx-proxy를 실행하여 포트를 만듭니다. – levi

답변

-1

모든 프로젝트에 대해 하나의 nginx를 가질 수 있습니다. 이 경우 당신은 당신이 어디에] only_nginx의 nginx 서비스/고정 표시기-compose.yml 파일이 당신의 모든 프로젝트 고정 표시기-작성 파일에 블록의

projectx_service: 
    extends: 
     file: /path_to/only_nginx/docker-compose.yml 
     service: nginx-proxy 
    ... 

이 종류를 사용해야합니다.

예 :

only_nginx/고정 표시기-compose.yml :

nginx-proxy: 
image: jwilder/nginx-proxy 
ports: 
    - "80:80" 
volumes: 
    - /var/run/docker.sock:/tmp/docker.sock:ro  

프로젝트 1/고정 표시기-compose.yml

project1_service: 
    extends: 
     file: /path_to/only_nginx/docker-compose.yml 
     service: nginx-proxy 
    ... 

프로젝트 2/고정 표시기-구성한다. yml

project2_service: 
    extends: 
     file: /path_to/only_nginx/docker-compose.yml 
     service: nginx-proxy 
    ... 
+0

이것은 해결되지 않습니다 원래의 문제가 아니라 코드의 중복을 피하십시오. 두 프로젝트에서'docker-compose up'을 실행하면 먼저 ok입니다. 두번째는 항상 "0.0.0.0:80 바인드 실패 : 포트가 이미 할당되었습니다"라고 알려줍니다. 또한 Docker Compose v3에서'extends' 키워드가 사용되지 않습니다. –

관련 문제