Nuestro team de trabajo ha pasado mucho tiempo investigando la respuesta a tu interrogante, te regalamos la solución así que nuestro deseo es que resulte de gran ayuda.
Solución:
Por defecto, la ventana acoplable usa el json-file
controlador para registrar los registros de sus contenedores y la salida json sin procesar de los registros se puede encontrar en:
/var/lib/docker/containers/[container-id]/[container-id]-json.log
Puede obtener esta ubicación ejecutando:
docker inspect --format='.LogPath' [container-id or container-name]
cuando corres docker-compose logs [service-name]
, docker-compose
se adjuntará al servicio (contenedor) al que hace referencia y el objeto LogPrinter generará el contenido del archivo anterior, pero formateado para que sea más fácil de leer.
Documentos relacionados: https://docs.docker.com/compose/compose-file/#logging
No estoy seguro de lo que estás tratando de lograr. ¿Estás tratando de reproducir
docker-compose logs > logs.txt
dentro del archivo de redacción como una instrucción? ¿O su problema es que la redirección no “atrapa” toda la salida?
En el último, puedes hacer:
docker-compose logs --no-color >& logs.txt
O
docker-compose logs --no-color |& tee logs.txt
para ver los registros en el terminal y volcarlos en un archivo al mismo tiempo.
En una versión posterior de docker-compose 1.7.x+, se solucionó. consulte https://github.com/docker/compose/issues/2227 y https://github.com/docker/compose/releases/tag/1.7.0
Antes de eso, hay otra forma de lograrlo, la solución de respuesta aceptada es acceder directamente a los archivos del host, lo que puede no ser aplicable para el caso remoto/de seguridad.
A continuación podemos obtener el nombre del contenedor de docker-compose ps
manda y deja que docker logs
comando para hacer un bucle
docker-compose ps | tail -n +3 | awk 'print $1' | xargs -n1 docker logs