FROM ghcr.io/astral-sh/uv:python3.14-bookworm-slim AS base WORKDIR /app ENV UV_COMPILE_BYTECODE=1 \ UV_LINK_MODE=copy \ PYTHONUNBUFFERED=1 COPY pyproject.toml uv.lock ./ RUN uv sync --frozen --no-install-project --no-dev COPY . . FROM base AS dev RUN uv sync --frozen EXPOSE 8000 CMD ["uv", "run", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"] FROM base AS prod RUN uv sync --frozen --no-dev EXPOSE 8000 CMD ["uv", "run", "uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]