Ejecuto un algoritmo usando el comando "docker-compose up" en un servidor en la nube. Uno de los servicios (backend de producción) escribe registros como parte de su ejecución, en una ubicación dentro de su contenedor (./logs/Log_<UTCTIMENOW>.txt).
Sé que puedo usar el comando 'docker logs' para inspeccionar los registros cuando se ejecuta el servicio, pero una vez que se detiene usando 'docker-compose down', los registros se pierden para siempre (ya que el contenedor se destruye).
Así que supongo que me gustaría 'montar' un volumen en mi archivo de composición de ventana acoplable y redirigir la salida de ese archivo log.txt al directorio ~, fuera del contenedor. Así es como se ve mi árbol de directorios:
Probé todo tipo de combinaciones en el archivo de composición de la ventana acoplable, sin éxito.
Por ejemplo, no se pudo agregar lo siguiente.
volumes: - type: volume # Also tried `bind` type and other syntaxes - ./logs:/productionbackend/logs . ├── docker-compose.yaml #THIS IS THE DOCKER-COMPOSE FILE STARTING MY SERVICES ├── productionfrontend │ ├── Dockerfile │ ├── app │ │ ├── database.py │ │ ├── main.py │ │ └── requirements.txt │ └── docker-compose.yaml └── productionbackend ├── Dockerfile ├── backend.py ├── logs │ ├── Log_03_Jun_14.18.19_GMT.txt ├── requirements.txt ├── settings │ └── somefile.py ........Gracias.
para el siguiente:
volumes: - type: volume # Also tried `bind` type and other syntaxes - ./logs:/productionbackend/logsNo sé si es tu error tipográfico o de otros, pero parece que esta gramática es extraña, ver gramática oficial
A continuación, doy un ejemplo mínimo que podría funcionar para su referencia:
ventana acoplable-compose.yaml:
version: '3' services: backend: image: alpine container_name: my_try volumes: - ./log_on_host:/productionbackend/logs command: sh -c 'echo "hi" > /productionbackend/logs/my_log.txt'Y el siguiente es el historial de ejecución:
shubuntu1@shubuntu1:~/abc$ ls docker-compose.yaml shubuntu1@shubuntu1:~/abc$ docker-compose up -d Creating network "abc_default" with the default driver Creating my_try ... done shubuntu1@shubuntu1:~/abc$ docker-compose down Removing my_try ... done Removing network abc_default shubuntu1@shubuntu1:~/abc$ ls docker-compose.yaml log_on_host shubuntu1@shubuntu1:~/abc$ cat log_on_host/my_log.txt hi Desde arriba, puede ver que aunque el contenedor my_try ha sido destruido, todavía podemos ver el registro my_log.txt que tiene el contenido hi en el host. Debe modificar el suyo similar al ejemplo mínimo anterior, solo para su información.