Есть ли способ отключить службу в файле docker-compose.yml

Я оказался в ситуации, что хочу временно отключить службу в файле docker-compose.

Конечно, я мог бы прокомментировать это, но есть ли возможность просто сказать "enabled: false"?

Ответ 1

Вы можете просто переопределить entrypoint или command, чтобы заменить указанную команду тем, что ничего не делает (/bin/true)

Это приведет к немедленному выходу контейнера, ничего не сделав.


shadi добавляет следующие комментарии в комментарии:

Если вы не хотите, чтобы служба вообще создавалась, переопределите ключ сборки, чтобы указать на Dockerfile, который имеет только:

FROM tianon/true 
ENTRYPOINT ["/true"]

Ответ 2

Вы можете сделать это в файле docker-compose.override.yaml.

Этот файл автоматически читается docker-compose и объединяется с основным docker-compose.yaml.

Если вы исключили его из Git, каждый разработчик может настроить конфигурацию (с некоторыми ограничениями), не изменяя оригинальный docker-compose.yaml.

Таким образом, сервис foo может быть отключен ad-hoc путем переопределения его точки входа в docker-compose.override.yaml:

version: "3"

services:
  foo:
    entrypoint: ["echo", "Service foo disabled"]

Ответ 3

Я добавляю в сервис следующую строку, которую хочу временно отключить:

command: echo "{put your service name here} disabled"

Это все равно начинается, но ничего не делает.

Ответ 4

Невозможно отключить службу, определенную в Docker, создать файл yaml. Предложение VonC является хорошим обходным решением Пожалуйста, см. Ниже документацию документации док-станции для доступных опций https://docs.docker.com/compose/compose-file/

Ответ 5

Я бы масштабировал сервис до 0 реплик с помощью: развернуть:     Реплики: 0

К сожалению, как указано в документации это работает только с докером.

Ответ 6

Примитив, но добавить # в начале каждой строки службы.