61 lines
2.4 KiB
Markdown
61 lines
2.4 KiB
Markdown
# 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
|
|
1. Revisar la estructura actual del backend y su forma de arranque.
|
|
2. Diseñar un Dockerfile específico para el backend.
|
|
3. Asegurar que el backend pueda arrancar en contenedor con:
|
|
- host correcto
|
|
- puerto configurable
|
|
- variables de entorno ya soportadas por el proyecto
|
|
4. Revisar qué rutas del backend deben persistirse fuera del contenedor, especialmente:
|
|
- SQLite histórica
|
|
- snapshots JSON
|
|
- cualquier artefacto operativo relevante
|
|
5. Preparar una estrategia razonable de `.dockerignore` para backend.
|
|
6. Mantener la imagen lo más simple y reproducible posible.
|
|
7. No resolver todavía reverse proxy final ni TLS en esta task.
|
|
8. 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.
|