FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim WORKDIR /app # Copiar archivos de dependencias primero (cache de layers) COPY pyproject.toml uv.lock ./ # Instalar dependencias (sin el proyecto mismo todavía) RUN uv sync --frozen --no-install-project # Copiar el resto del código COPY . . # Instalar el proyecto RUN uv sync --frozen # Directorio de datos persistente (montar como volumen) RUN mkdir -p /app/data && chown -R 1000:1000 /app USER 1000 EXPOSE 8080 ENTRYPOINT [".venv/bin/python", "main.py"]