2016-08-23 522 views
1

我正在使用这个docker-compose.yml。 如果可能的话,我想做出更简单和继承的配置。如何在Docker-compose中对容器进行分组?

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个具有相同配置的站点。 我可以让配置更简单吗?像这样:

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中,我有两个名称空间,开发应用程序时需要的服务的开发以及与可视化应用程序度量标准相关的服务度量标准(因为我对开发时没有兴趣)。

version: "3" 
services: 
    dev: 
    image: monroe/noop 
    depends_on: ["postgres", "keycloak"] 
    metrics: 
    image: monroe/noop 
    depends_on: ["grafana"] 
    postgres: ... 
    keycloak: ... 
    grafana: ... 
相关问题