Usar docker compose wait con servicios específicos
En el paso anterior, usamos docker compose wait
para esperar que todos los servicios se detuvieran. En este paso, aprenderemos cómo usar docker compose wait
para esperar que servicios específicos alcancen un estado determinado.
Primero, iniciemos nuevamente nuestros servicios usando docker-compose up -d
. Asegúrate de estar en el directorio ~/project
.
cd ~/project
docker-compose up -d
Verifica que ambos servicios estén en ejecución usando docker-compose ps
.
docker-compose ps
Ahora, abre una nueva ventana o pestaña de terminal. Usaremos este nuevo terminal para demostrar cómo esperar por un servicio específico.
En la nueva ventana de terminal, navega al directorio ~/project
.
cd ~/project
Podemos especificar qué servicios esperar proporcionando sus nombres después del comando docker compose wait
. Por ejemplo, para esperar solo que el servicio web
se detenga:
docker compose wait web
Similar al paso anterior, este comando se bloqueará porque el servicio web
está actualmente en ejecución.
Ahora, regresa a tu ventana de terminal original. Detendremos solo el servicio web
. Para hacer esto, podemos usar el comando docker stop
con el nombre del contenedor. Puedes encontrar el nombre del contenedor usando docker ps
. Probablemente será algo como project-web-1
.
cd ~/project
docker stop project-web-1
Reemplaza project-web-1
con el nombre real del contenedor si es diferente.
Observa la salida en la ventana de terminal original. Verás un mensaje indicando que el contenedor web
está siendo detenido.
Ahora, vuelve a la nueva ventana de terminal donde ejecutaste docker compose wait web
. Como el servicio web
se ha detenido, el comando docker compose wait web
detectará esto y finalizará.
Deberías ver que el prompt de comandos regresa en la nueva ventana de terminal. Nota que el comando docker compose wait web
finalizó aunque el servicio db
sigue en ejecución.
Para confirmar que el servicio db
sigue en ejecución, regresa al terminal original y ejecuta docker-compose ps
.
cd ~/project
docker-compose ps
Deberías ver el servicio db
listado con el estado Up
, mientras que el servicio web
ya no aparece o muestra un estado detenido.
Finalmente, detengamos el servicio db
restante.
cd ~/project
docker-compose down
Has utilizado exitosamente docker compose wait
para bloquear hasta que un servicio específico se detuviera.