2.4 KiB
2.4 KiB
TASK-060-backend-dockerization
Goal
Preparar el backend Python del proyecto para ejecutarse correctamente dentro de un contenedor Docker, con una imagen reproducible, variables de entorno claras y persistencia adecuada de datos históricos y snapshots.
Context
El backend ya funciona localmente, pero aún no está preparado formalmente para una ejecución containerizada estándar. Antes de pensar en despliegue real, hace falta empaquetarlo de forma consistente y dejar claro cómo se inyectan configuración, rutas de datos y puertos.
Steps
- Revisar la estructura actual del backend y su forma de arranque.
- Diseñar un Dockerfile específico para el backend.
- Asegurar que el backend pueda arrancar en contenedor con:
- host correcto
- puerto configurable
- variables de entorno ya soportadas por el proyecto
- Revisar qué rutas del backend deben persistirse fuera del contenedor, especialmente:
- SQLite histórica
- snapshots JSON
- cualquier artefacto operativo relevante
- Preparar una estrategia razonable de
.dockerignorepara backend. - Mantener la imagen lo más simple y reproducible posible.
- No resolver todavía reverse proxy final ni TLS en esta task.
- Al completar la implementación:
- dejar el repositorio consistente
- hacer commit
- hacer push al remoto si el entorno lo permite
Files to Read First
- AGENTS.md
- backend/README.md
- backend/app/main.py
- backend/app/config.py
- backend/app/historical_ingestion.py
- backend/app/historical_runner.py
- backend/app/historical_snapshots.py
- backend/requirements.txt
- .gitignore
Expected Files to Modify
- backend/Dockerfile
- backend/.dockerignore
- backend/README.md
- opcionalmente archivos de entorno de ejemplo si mejoran claridad, por ejemplo:
- backend/.env.example
Constraints
- No romper el arranque local existente.
- No eliminar la persistencia local del histórico.
- No hacer cambios destructivos.
- Mantener el trabajo centrado en containerizar el backend.
Validation
- Existe un Dockerfile de backend funcional.
- La persistencia necesaria del backend queda identificada y documentada.
- El backend puede ejecutarse con configuración inyectable por entorno.
- Los cambios quedan committeados y se hace push si el entorno lo permite.
Change Budget
- Preferir menos de 5 archivos modificados o creados.
- Preferir menos de 220 líneas cambiadas.