FROM python:3.12-slim AS builder RUN pip install --no-cache-dir uv WORKDIR /app COPY pyproject.toml uv.lock* ./ RUN uv sync --frozen --no-dev --no-install-project || uv sync --no-dev --no-install-project COPY app ./app RUN uv sync --frozen --no-dev || uv sync --no-dev FROM python:3.12-slim WORKDIR /app COPY --from=builder /app/.venv /app/.venv COPY --from=builder /app/app /app/app ENV PATH="/app/.venv/bin:$PATH" ENV PYTHONUNBUFFERED=1 EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]