# Stage 1: Builder (Compilación y dependencias)
FROM python:3.14-slim as builder

WORKDIR /app

# Variables de entorno para optimizar Poetry y Pip
ENV POETRY_NO_INTERACTION=1 \
    POETRY_VIRTUALENVS_IN_PROJECT=1 \
    POETRY_VIRTUALENVS_CREATE=1 \
    PIP_NO_CACHE_DIR=1

# Instalar Poetry
RUN pip install poetry

# Copiar archivos de configuración primero para aprovechar el caché de capas
COPY pyproject.toml poetry.lock ./

# Instalar dependencias de producción (sin dev)
RUN poetry install --without dev --no-root

# Stage 2: Runtime (Imagen final limpia)
FROM python:3.14-slim as runtime

WORKDIR /app
ENV VIRTUAL_ENV=/app/.venv \
    PATH="/app/.venv/bin:$PATH"

# Copiar el entorno virtual generado en el stage anterior
COPY --from=builder /app/.venv /app/.venv

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

# Usuario no privilegiado por seguridad
RUN useradd -m appuser && chown -R appuser /app
USER appuser

# Punto de entrada
CMD ["python", "-m", "my_project.main"]
