69 votes

Auto retirez le récipient avec le panneau-composer.yml

docker-compose run est un indicateur --rm automatique supprime le conteneur après le rodage. Je me demande si il y a un équivalent config avec docker-composer.yml pour un service spécifique, comme l'un des services que je suis en yml est un processus de construction qui devrait juste sortie de la compilation de fichiers et de disparaître lui-même.

52voto

antithesis Points 386

Je n'ai pas trouvé d'option pour vous aider à définir ce comportement dans l' docker-compose.yml le fichier et je pense que l'explication est la suivante:

docker-compose up construit, (re)crée, démarre et s'attache à conteneurs pour un service.

Depuis votre images sont construits et l' containers de votre service ont commencé, vous pouvez ensuite utiliser docker-compose stop et docker-compose start pour démarrer/arrêter votre service. Cela est différent de l' docker-compose down qui:

Arrête de conteneurs et supprime les conteneurs, les réseaux, les volumes, et les images créées par up.

Problème avec ce que vous essayez de faire:

Si vous docker-compose up et l'un de vos conteneurs termine sa tâche et obtient (auto)supprimé, alors vous ne pouvez pas docker-compose stop et docker-compose start de nouveau. Enlever le conteneur ne sera pas là pour start de nouveau.


Vous voudrez peut-être jeter un oeil à:

20voto

Thomas Gotwig Points 349

Exécutez simplement docker-compose up && docker-compose rm -fsv

5voto

KH. Points 3

Ma solution a été de créer un petit script bash qui supprime automatiquement les conteneurs après - Il ne fonctionne pas avec le mode détaché, mais je suppose que cela pourrait ne pas être un gros problème.

Si vous êtes sur mac os, vous pouvez mettre ce script en usr/local/bin. En supposant que c'est nommée d-c, vous pouvez ensuite exécuter chmod +x usr/local/bin/d-c de le rendre exécutable. Sur Windows, je n'ai aucune idée de comment le faire fonctionner, mais sur Linux, il devrait être semblable.

#! /bin/bash

if [[ $1 == "up" ]]; then
    # runs "docker-compose up" and then "docker-compose down"
    docker-compose up "${@:2}"; docker-compose down
elif [[ $1 == "run" ]]; then
    # "d-c run" automatically adds the --rm flag
    docker-compose run --rm "${@:2}"
else
    # any other d-c command runs docker-compose normally
    docker-compose "${@:1}"
fi

2voto

Zehra Points 41

Je ne suis pas sûr de comprendre, docker-composer exécuter --utilisateur est une option, et le docker-composer.yml prend en charge la clé utilisateur (http://docs.docker.com/compose/yml/#working95dir-entrypoint-user-hostname-domainname-mem95limit-privileged-restart-stdin95open-tty-cpu95shares).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X