Cuando ejecutamos el comando docker-compose up-d para ejecutar los acopladores usando el archivo docker-compose.yml , comienza a crear imágenes o extraer imágenes del registro. Podemos ver todos y cada uno de los pasos de este comando en la terminal.
Estoy tratando de ejecutar este comando desde un script de python. El comando se inicia con éxito, pero después del comando, no tengo idea de cuánto se ha completado el proceso. ¿Hay alguna manera de monitorear el estado del comando docker-compose up -d para que el script pueda permitirle al usuario (que está usando el script) saber cuánto se completó el proceso o si el comando docker-compose falló debido a algún problema? razones.?
Gracias
CÓDIGO:
from pexpect import pxssh session = pxssh.pxssh() if not session.login(ip_address,<USERNAME>, <PASSWORD>): print("SSH session failed on login") print(str(session)) else: print("SSH session login successfull") session.sendline("sudo docker-compose up -d") session.prompt() resp = session.before print(resp)Puede ver los registros docker-compose siguientes maneras
docker-compose up -d para iniciar todos los servicios en modo separado (-d) (no verá ningún registro en modo separado)docker-compose logs -f -t para adjuntarse a los registros de todos los servicios en ejecución, mientras que -f significa que sigue la salida del registro y la opción -t le brinda buenas marcas de tiempo ( Docs )Lo que hago para depurar pequeños problemas es ejecutar:
docker-compose up {service_name}De esta manera puedo ver el resultado de un servicio individual. Si el servicio tiene una dependencia, siempre puede iniciar varios servicios así:
docker-compose up {service_name1} {service_name2}Además uso:
docker-compose logs -f -t {service_name1}Para ver los registros de un servicio que ya se está ejecutando o alternativamente:
docker logs -t -f {container_name}Tenga en cuenta que el comando anterior necesita el nombre del contenedor y no el nombre del servicio
De esta manera, puede asegurarse de que, servicio por servicio, todo funcione como se espera y luego puede iniciarlos todos en modo separado como se sugiere en las otras respuestas.
Creo que debería usar el comando docker-compose top , podría verificar el resultado, no debería estar vacío cuando el contenedor se está ejecutando. Si los contenedores son stop o exit o Create , debería regresar vacío