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
"?
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"]
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"]
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.
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/
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.
Primitive mais ajoutez un #
au début de chaque ligne du service.