Docker-compose exclude service by default

后端 未结 3 1444
栀梦
栀梦 2021-02-14 03:59

If I have a great many services defined in a docker-compose project, how can I exclude a service from the default docker-compose up command?

For example, I

相关标签:
3条回答
  • 2021-02-14 04:15

    Not exactly what you're looking for but you could use the scale flag to scale your ssl service to zero:

    docker-compose up --scale ssl_service=0
    

    Another option is to have multiple compose files and run docker with the -f flag to start specific services.

    0 讨论(0)
  • 2021-02-14 04:16

    Starting with docker-compose 1.28.0 the new service profiles are just made for that! With profiles you can mark services to be only started in specific profiles, for example:

    services:
      webapp:
        # ...
    
      nginx:
        # ...
        profiles: ["nginx"]
        ports:
          - 80:80
    
      ssl:
        # ...
        profiles: ["ssl"]
        ports:
          - 80:80
    
    docker-compose up # start only your webapp services
    docker-compose --profile nginx up # start the webapp and nginx service
    docker-compose --profile ssl up # start the webapp and ssl service
    docker-compose run ssl # run the ssl service
    

    Depending on your exact use case/setup however it may be better to split your services into multiple docker-compose.yml files.

    0 讨论(0)
  • 2021-02-14 04:28

    Hey I hit this question on github today: "Define services which are not started by default" https://github.com/docker/compose/issues/1896

    Well, you can't. But I have done this workaround since I have quite a lot of services and adding more. I did dummy service with just some dummy image and custom command and then I set my desired services as dependencies:

      main-services:
        image: docker4w/nsenter-dockerd # you want to put there some small image
        command: sh -c "echo start"
        depends_on:
          - postgres
          - consumer-backend
          - prisma
          - api-gateway
          - adminer
          - frontend
    

    Then I wrote into my readme.md:

    Use this to run everything
    docker-compose up -d main-services

    Create database structures
    docker-compose up deploy

    Seed database with data
    docker-compose up seed

    Using dummy services to group things was easier than anything else I have seen so far.

    0 讨论(0)
提交回复
热议问题