FROM python:3.11-slim AS builder WORKDIR /app # Install uv for fast dependency management RUN pip install --no-cache-dir uv # Copy dependency files first for cache efficiency COPY pyproject.toml uv.lock README.md ./ # Install dependencies RUN uv sync --frozen --no-dev # --- Runtime stage --- FROM python:3.11-slim WORKDIR /app # Copy installed packages from builder COPY --from=builder /app/.venv /app/.venv # Copy application code COPY models.py . COPY server/ server/ COPY inference.py . COPY openenv.yaml . COPY pyproject.toml . COPY README.md . # Use the venv ENV PATH="/app/.venv/bin:$PATH" ENV PYTHONPATH="/app" # Non-root user RUN useradd -m appuser USER appuser EXPOSE 7860 CMD ["python", "-m", "uvicorn", "server.app:app", "--host", "0.0.0.0", "--port", "7860"]