web-dev-qa-db-fra.com

Est-il possible de désactiver un service dans docker-compose.yml

Je me trouve dans la situation où je veux désactiver temporairement un service dans un docker-compose fichier.

Bien sûr, je pourrais commenter, mais y at-il une option pour simplement dire "enabled: false "?

41
Mandragor

Vous pouvez simplement redéfinir le entrypoint ou command afin de remplacer ladite commande par quelque chose qui ne fait rien (/bin/true)

Cela ferait sortir le conteneur immédiatement sans rien faire.


shadi ajoute les conseils suivants dans les commentaires:

Si vous ne voulez pas que le service soit construit du tout, redéfinissez la clé de construction pour qu'elle pointe vers un Dockerfile qui n'a que:

FROM tianon/true 
ENTRYPOINT ["/true"]
26
VonC

Vous pouvez le faire dans un docker-compose.override.yaml fichier.

Ce fichier est lu automatiquement par docker-compose et fusionné dans le principal docker-compose.yaml.

Si vous l'avez exclu de Git, chaque développeur peut modifier la configuration (avec quelques limitations) sans changer l'original docker-compose.yaml.

Ainsi, le service foo peut être désactivé ad-hoc en redéfinissant son point d’entrée dans docker-compose.override.yaml:

version: "3"

services:
  foo:
    entrypoint: ["echo", "Service foo disabled"]
10
Kos Prov

J'ajoute la ligne supplémentaire suivante au service que je veux désactiver temporairement:

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

Cela commence quand même, mais ne fait rien.

7
Michele Minno

Il n’existe aucun moyen de désactiver un service défini dans le fichier yaml de Docker. La solution de VonC est une bonne solution de contournement. Voir ci-dessous la documentation de docker compose pour connaître les options disponibles https://docs.docker.com/compose/compose-file/

3
Shibashis

J'adapterais le service à 0 réplicas avec: deploy: réplicas: 0

Malheureusement, comme la documentation l'indique , cela ne fonctionne qu'avec le docker swarm.

1
herm

Primitive mais ajoutez un # au début de chaque ligne du service.

0
Kjeld Flarup