# Stage 1: Builder for dependencies FROM python:3.11-slim-bullseye AS builder WORKDIR /app # Install uv RUN pip install uv # Copy only dependency files first to leverage Docker cache COPY pyproject.toml ./ # Install dependencies with uv RUN uv pip install --system . # Stage 2: Final image FROM python:3.11-slim-bullseye WORKDIR /app # Copy installed dependencies from builder COPY --from=builder /usr/local/lib/python3.11/site-packages/ /usr/local/lib/python3.11/site-packages/ COPY --from=builder /usr/local/bin/ /usr/local/bin/ # Copy application code COPY server.py ./ # Expose the port Uvicorn will listen on EXPOSE 8000 # Run the server CMD ["python", "server.py"]