Files
comunidadhll/ai/tasks/done/TASK-060-backend-dockerization.md
2026-03-23 16:39:18 +01:00

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

  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.