| FROM python:3.12-slim | |
| WORKDIR /app | |
| # Use uv for reproducible dependency installs from pyproject/uv.lock. | |
| RUN pip install --no-cache-dir uv | |
| COPY pyproject.toml uv.lock ./ | |
| RUN uv sync --frozen --no-editable | |
| COPY . . | |
| ENV PATH="/app/.venv/bin:$PATH" | |
| ENV PYTHONPATH="/app:$PYTHONPATH" | |
| EXPOSE 8000 | |
| CMD ["uvicorn", "server.app:app", "--host", "0.0.0.0", "--port", "8000"] | |