# ---- Stage 1: build deps ---- FROM python:3.10-slim AS base ENV PYTHONPATH=/app \ PYTHONUNBUFFERED=1 \ DEBIAN_FRONTEND=noninteractive \ PIP_NO_CACHE_DIR=1 WORKDIR /app # System dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential curl git \ && rm -rf /var/lib/apt/lists/* # Install Python dependencies COPY requirements.txt . RUN pip install --upgrade pip && \ pip install -r requirements.txt # ---- Stage 2: app ---- FROM base AS app WORKDIR /app COPY . . # Create runtime directories RUN mkdir -p logs data # Non-root user for HF Spaces security policy RUN useradd -m -u 1000 appuser && chown -R appuser:appuser /app USER appuser # Expose FastAPI port (HF Spaces default) EXPOSE 7860 # Health check HEALTHCHECK --interval=30s --timeout=10s --start-period=15s --retries=3 \ CMD curl -f http://localhost:7860/health || exit 1 # Start server CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "1"]