I'm using this docker-compose.yml. And I wanna make simpler and inherrit configuration, if its possible.
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
I have 15 sites with same configuration. Can I make config simpler? Like this:
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
Or better?
Thank you!
Docker relies on cgroups to control and isolate resource limits. A cluster is a group of machines that work together to run workloads and provide high availability.
UPDATE 31 Aug 2021 In the latest docker compose there's support for profiles https://docs.docker.com/compose/profiles/ so this problem would be perfectly solved by that new feature.
Another way is to create no-op services that depend on other services.
For example, in the following docker-compose.yml I have two namespaces, dev for services needed when developing the app, and metrics for services related to visualizing app metrics (since I'm not interested instarting those when developing).
version: "3"
services:
  dev:
    image: monroe/noop
    depends_on: ["postgres", "keycloak"]
  metrics:
    image: monroe/noop
    depends_on: ["grafana"]
  postgres: ...
  keycloak: ...
  grafana: ...
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With