nothiro/cereal-applicant-api
0
1# packages/api/Dockerfile2# Deployed on Hugging Face Spaces (Docker SDK)3 4FROM python:3.11-slim AS base5 6# --- System deps (WeasyPrint + PyMuPDF) ---7RUN apt-get update && apt-get install -y --no-install-recommends \8 libpango-1.0-0 libpangoft2-1.0-0 libcairo2 libgdk-pixbuf-xlib-2.0-0 \9 libffi-dev libglib2.0-0 \10 && rm -rf /var/lib/apt/lists/*11 12# --- HF Spaces runs as user 1000 ---13RUN useradd -m -u 1000 cereal14WORKDIR /app15 16# --- Install Python deps (cached layer) ---17COPY requirements.txt .18RUN pip install --no-cache-dir --upgrade pip && \19 pip install --no-cache-dir -r requirements.txt20 21# --- Copy application code ---22COPY . .23 24# --- Permissions for HF Spaces ---25RUN chown -R cereal:cereal /app26USER cereal27 28# --- HF Spaces expects port 7860 ---29EXPOSE 786030 31# --- Health check (used by HF Spaces for readiness) ---32HEALTHCHECK --interval=30s --timeout=5s --start-period=10s --retries=3 \33 CMD python -c "import urllib.request; urllib.request.urlopen('http://localhost:7860/health')" || exit 134 35# --- Start ---36CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "7860", "--workers", "2", "--timeout-keep-alive", "65"]37 