FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim WORKDIR /app # Copy dependency files first (better caching) COPY pyproject.toml uv.lock ./ # Install dependencies into project environment RUN uv sync --frozen --no-dev # Copy app source COPY . . ENV PYTHONUNBUFFERED=1 ENV PYTHONPATH=/app/src ENV DATA_CSV_PATH=/app/data.csv ENV UV_PROJECT_ENVIRONMENT=/app/.venv ENV UV_LINK_MODE=copy EXPOSE 8000 CMD ["uv", "run", "gunicorn", "--workers", "2", "--bind", "0.0.0.0:8000", "app:app"]