All checks were successful
Build and Push Docker Image / build (push) Successful in 4s
31 lines
854 B
Docker
31 lines
854 B
Docker
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"]
|