2016-08-23 2 views
1

이 docker-compose.yml을 사용하고 있습니다. 그리고 가능한 경우 더 단순하고 상속인 구성을 만들고 싶습니다.도커로 컨테이너를 그룹화하는 방법은 무엇입니까?

version: '2' 

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

    web_one: 
     container_name: "web_one" 
     build: 
      context: ./ 
      dockerfile: web.docker 
     volumes: 
      - ./../one:/var/www 

     environment: 
      - VIRTUAL_HOST=whoami_one.local 
     links: 
      - app_one 
    app_one: 
     container_name: "app_one" 
     build: 
      context: ./ 
      dockerfile: app.docker 
     volumes: 
      - ./../one:/var/www 
     links: 
      - db 


    web_two: 
     container_name: "web_two" 
     build: 
      context: ./ 
      dockerfile: web.docker 
     volumes: 
      - ./../two:/var/www 

     environment: 
      - VIRTUAL_HOST=whoami_two.local 
     links: 
      - app_two 
    app_two: 
     container_name: "app_two" 
     build: 
      context: ./ 
      dockerfile: app.docker 
     volumes: 
      - ./../two:/var/www 
     links: 
      - db 

동일한 구성의 사이트가 15 개 있습니다. config를 더 간단하게 만들 수 있습니까? 좋아요 :

version: '2' 

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

    one: 
     extends: 
      file: common-services.yml 
     volumes: 
      - ./../one:/var/www 

     environment: 
      - VIRTUAL_HOST=whoami_one.local 

    two: 
     extends: 
      file: common-services.yml 
     volumes: 
      - ./../two:/var/www 

     environment: 
      - VIRTUAL_HOST=whoami_two.local 

또는 그 이상?

감사합니다.

+0

시도해 보셨습니까? 이는 https://docs.docker.com/compose/extends/#/understand-the-extends-configuration에 문서화되어 있습니다. – VonC

+0

예.하지만 짧게 만들 수는 없습니다. 같은 코드 금액 –

+0

https://docs.docker.com/compose/extends/에서 설명하는 것 이외에 내가 알지 못하는 부분 – VonC

답변

1

또 다른 방법은 다른 서비스에 의존하는 서비스를 만들지 않는 것입니다. 예를 들어, 다음은 docker-compose.yml입니다. 앱을 개발할 때 필요한 서비스에 대한 dev와 응용 프로그램 메트릭 시각화와 관련된 서비스에 대한 메트릭이라는 두 개의 네임 스페이스가 있습니다 (개발할 때 관심이 없으므로).

version: "3" 
services: 
    dev: 
    image: monroe/noop 
    depends_on: ["postgres", "keycloak"] 
    metrics: 
    image: monroe/noop 
    depends_on: ["grafana"] 
    postgres: ... 
    keycloak: ... 
    grafana: ... 
관련 문제