docker - 如何在docker-compose中对容器进行分组?

标签 docker docker-compose

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

或更好?

谢谢!

最佳答案

另一种方法是创建依赖于其他服务的无操作服务。
例如,在下面的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: ...

关于docker - 如何在docker-compose中对容器进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39100483/

相关文章:

mysql - Docker Compose mysql 导入 .sql

docker - 卷 "mongo": hostPath type check failed:/mongo/data is not a directory 的 MountVolume.SetUp 失败

linux - docker在ubuntu vs linux aarch64上构建

Docker:安装docker时如何解决ubuntu中的公钥错误

docker - 如何通过代理访问Nginx Docker容器?

linux - Docker构建中的多个go文件

Docker compose - 限制互联网访问,仅允许通过代理导出

reactjs - 使用 docker-compose 对 React 应用程序进行 Dockerize

docker - 在Nginx反向代理后面的docker-compose服务中请求时axios ECONNREFUSED

symfony - docker容器中的Symfony4和RabbitMQ