# Hugging Face Spaces — RICS v2 backend (CPU embedder + reranker). FROM python:3.11-slim RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ libgomp1 \ curl \ && rm -rf /var/lib/apt/lists/* \ && useradd -m -u 1000 user ENV PIP_DISABLE_PIP_VERSION_CHECK=1 \ PIP_NO_CACHE_DIR=1 \ PYTHONUNBUFFERED=1 \ PYTHONDONTWRITEBYTECODE=1 \ HOME=/home/user \ PATH="/home/user/.local/bin:$PATH" \ PORT=7860 \ DATA_DIR=/data \ HF_HOME=/data/hf_cache \ LOCAL_EMBEDDING_DEVICE=cpu \ REFERENCE_CROSS_ENCODER_DEVICE=cpu \ LOCAL_EMBEDDING_DTYPE=bfloat16 \ LOCAL_EMBEDDING_TRUST_REMOTE_CODE=true \ MASTER_TEMPLATE_AUTO_INGEST=false \ REFERENCE_AUTO_INGEST_ENABLED=false \ SECTION_CONCURRENCY=1 \ PII_USE_SPACY=false \ REFERENCE_CROSS_ENCODER_WARMUP=false \ HF_OFFLINE=false USER user WORKDIR /app COPY --chown=user backend/requirements-spaces.txt ./backend/requirements-spaces.txt RUN pip install --upgrade pip && \ pip install torch --index-url https://download.pytorch.org/whl/cpu && \ pip install -r backend/requirements-spaces.txt COPY --chown=user backend ./backend COPY --chown=user frontend ./frontend EXPOSE 7860 HEALTHCHECK --interval=30s --timeout=10s --start-period=600s --retries=5 \ CMD curl -fsS "http://127.0.0.1:${PORT:-7860}/health" || exit 1 CMD ["sh", "-c", "exec uvicorn backend.main:app --host 0.0.0.0 --port ${PORT:-7860} --workers 1"]