Ejecución Automática de Scripts en Python con Docker: Paso a Paso
Hace un par de semanas recibí la triste noticia de que https://deta.space/ iba a cerrar 😔. Estuve un par de días buscando algún servicio que me permitiera ejecutar periódicamente un script de python pero no encontré nada que me llamara la atención; debido a esto, terminé montando mi script en mi RPi5 😛. Por acá comparto como hacerlo.
Introducción
Comparto un par de cosas que me parece importante compartir a manera de contexto:
- Mi script se ejecuta con
python cli.py
- El script no requiere de ninguna interacción con el usuario.
- Tengo un archivo
requirements.txt
donde se encuentran las dependencias de mi proyecto. - Sólo necesito que se ejecute a una hora en específica cada día.
Agregando docker a mi proyecto python
Por alguna extraña razón, hice este mini proyecto y no le puse docker 😅. So... este es momento de hacerlo. Sólo es necesario crear dos archivos de texto.
Siéntete libre de agregar más variables de entorno o cualquier otra configuración que necesite tu proyecto.
Este archivo se ejecutará cuando suba el contenedor, en resumen hará lo siguiente:
- Utilizar una versión compacta de python 3.9, alpine
- Actualizar e instalar paquetes
- Copiar el directorio al volumen docker
- Descargar librerías de python basadas en el archivo
requirements.txt
- Agregar la ejecución periódica utilizando cron.
Si te gustaría conocer más sobre cron, te dejo dos links que te pueden ser de mucha utilidad.
Ejecución
Y listo! para subir el contenedor solo es necesario ejecutar docker-compose up --build