FROM ghcr.io/astral-sh/uv:python3.13-bookworm-slim WORKDIR /app # 1. Copy dependency files first for layer caching COPY pyproject.toml uv.lock ./ # 2. Install dependencies RUN uv sync --frozen --no-dev # 3. Explicitly copy data.csv first to ensure it exists # (This will fail the build if the file is missing locally) COPY data.csv ./data.csv # 4. Copy the rest of the source code COPY . . # 5. Environment Setup ENV PYTHONUNBUFFERED=1 # Points to the src folder so Python can find your modules ENV PYTHONPATH=/app/src # Points to the file we just baked into the root ENV DATA_CSV_PATH=/app/data.csv ENV UV_PROJECT_ENVIRONMENT=/app/.venv ENV UV_LINK_MODE=copy EXPOSE 8000 # 6. Run from the root, but point Gunicorn to the app inside src CMD ["uv", "run", "gunicorn", "--workers", "2", "--bind", "0.0.0.0:8000", "--chdir", "/app/src", "app:app"]