FROM ghcr.io/astral-sh/uv:python3.12-bookworm-slim WORKDIR /app ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy # Install dependencies first so source changes don't bust this layer. COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-dev --no-install-project COPY . . RUN uv sync --frozen --no-dev EXPOSE 8000 CMD ["uv", "run", "--no-sync", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]