Utiliser docker compose wait avec des services spécifiques
Dans l'étape précédente, nous avons utilisé docker compose wait
pour attendre l'arrêt de tous les services. Dans cette étape, nous allons apprendre à utiliser docker compose wait
pour attendre qu'un service spécifique atteigne un certain état.
Commencez par redémarrer nos services avec docker-compose up -d
. Assurez-vous d'être dans le répertoire ~/project
.
cd ~/project
docker-compose up -d
Vérifiez que les deux services sont en cours d'exécution avec docker-compose ps
.
docker-compose ps
Ouvrez maintenant une nouvelle fenêtre de terminal ou onglet. Nous utiliserons ce nouveau terminal pour démontrer l'attente d'un service spécifique.
Dans la nouvelle fenêtre de terminal, accédez au répertoire ~/project
.
cd ~/project
Nous pouvons spécifier quels services attendre en fournissant leurs noms après la commande docker compose wait
. Par exemple, pour n'attendre que l'arrêt du service web
:
docker compose wait web
Comme précédemment, cette commande va bloquer car le service web
est actuellement en cours d'exécution.
Revenez maintenant à votre fenêtre de terminal d'origine. Nous allons arrêter uniquement le service web
. Pour ce faire, nous pouvons utiliser la commande docker stop
avec le nom du conteneur. Vous pouvez trouver le nom du conteneur avec docker ps
. Il ressemblera probablement à project-web-1
.
cd ~/project
docker stop project-web-1
Remplacez project-web-1
par le nom réel du conteneur si différent.
Observez la sortie dans la fenêtre de terminal d'origine. Vous verrez un message indiquant que le conteneur web
est en cours d'arrêt.
Retournez à la nouvelle fenêtre de terminal où vous avez exécuté docker compose wait web
. Comme le service web
est arrêté, la commande docker compose wait web
le détectera et se terminera.
Vous devriez voir le prompt de commande réapparaître dans la nouvelle fenêtre de terminal. Notez que la commande docker compose wait web
s'est terminée bien que le service db
soit toujours en cours d'exécution.
Pour confirmer que le service db
est toujours actif, revenez au terminal d'origine et exécutez docker-compose ps
.
cd ~/project
docker-compose ps
Vous devriez voir le service db
listé avec l'état Up
, tandis que le service web
n'apparaîtra plus ou affichera un état arrêté.
Enfin, arrêtons le service db
restant.
cd ~/project
docker-compose down
Vous avez utilisé avec succès docker compose wait
pour bloquer jusqu'à l'arrêt d'un service spécifique.