# ─── Build stage ─────────────────────────────────────────────────────────────
FROM python:3.12-slim AS builder

WORKDIR /app

# Instalar dependencias de compilación
RUN pip install --no-cache-dir hatchling

# Copiar archivos necesarios para instalar el paquete
COPY pyproject.toml ./
COPY src/ ./src/
RUN pip install --no-cache-dir ".[dev]" 2>/dev/null || pip install --no-cache-dir .

# ─── Runtime stage ────────────────────────────────────────────────────────────
FROM python:3.12-slim AS runtime

WORKDIR /app

# Copiar dependencias instaladas desde el builder
COPY --from=builder /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
COPY --from=builder /usr/local/bin /usr/local/bin

# Copiar el código fuente
COPY src/ ./src/

# Variables de entorno con valores por defecto
ENV TRANSPORT=http
ENV HOST=0.0.0.0
ENV PORT=8000
ENV AWS_REGION=us-east-1

# Exponer el puerto HTTP del servidor MCP
EXPOSE 8000

# Health check básico — verifica que el servidor esté escuchando
HEALTHCHECK --interval=10s --timeout=5s --start-period=5s --retries=3 \
    CMD python -c "import socket; s=socket.create_connection(('localhost',8000),3); s.close()" || exit 1

# Comando de arranque
CMD ["python", "-m", "src.server"]
