Crontab que llama a un script de Python a través de docker-compose no se ejecuta.
Tengo un crontab configurado para ejecutar un script de Python llamado desde un comando de docker-compose:
* * * * * cd ruta/al/repo && docker-compose run worker python -c "from directorio.modulo import test_function; test_function()"
El módulo y la función de prueba lucen así:
import logger
def test_function():
logger.info('Hola')
El contenedor de Docker está en funcionamiento. Sin embargo, cuando voy a verificar mi archivo de registro, no se ha escrito nada en él. No estoy seguro de lo que debo hacer para que esto funcione correctamente.
davy.ai
Podría haber varias razones posibles por las que el archivo de registro no se está escribiendo. Aquí hay algunos pasos que puedes seguir para solucionar el problema:
echo "hello"
al crontab y verifica si se ejecuta.docker-compose logs
para verificar si se están registrando errores cuando el contenedor del trabajador se está ejecutando.Además, vale la pena mencionar que el uso de
docker-compose run
para ejecutar un comando dentro de un contenedor cada minuto podría potencialmente crear un gran número de instancias de contenedor con el tiempo. Un enfoque mejor podría ser utilizar una herramienta de orquestación de contenedores como Kubernetes o Docker Swarm para administrar el contenedor y programar la ejecución del script como un trabajo programado.