# Cloud Run / Hugging Face Spaces (Docker SDK). Build from repo root: # docker build -f backend/Dockerfile.hf -t cepheus-api ./backend # # HF expects port 7860 by default (overridable via PORT). FROM python:3.11-slim # build-essential + cmake are needed to build the insightface wheel (face recognition). RUN apt-get update && apt-get install -y --no-install-recommends \ libglib2.0-0 \ libgomp1 \ libgl1 \ build-essential \ cmake \ && rm -rf /var/lib/apt/lists/* WORKDIR /app ENV CEPHEUS_CLOUD=1 ENV CEPHEUS_FORCE_FULL_VISION=1 ENV FACE_MODEL_PACK=buffalo_sc ENV FACE_MODEL_ROOT=/app/model_cache ENV PORT=7860 ENV OMP_NUM_THREADS=4 ENV OPENBLAS_NUM_THREADS=4 ENV MKL_NUM_THREADS=4 ENV CEPHEUS_FACE_WORKERS=4 ENV ALLOW_PUBLIC_VISION=1 ENV CEPHEUS_WS_OPEN=1 ENV CEPHEUS_PRESENCE_TTL=45 ENV CEPHEUS_PUBLIC_VISION=1 ENV CEPHEUS_EMBEDDINGS_STARTUP_ONLY=1 ENV CEPHEUS_WS_RECEIVE_TIMEOUT=300 ENV GOSSIP_AUTO_ROOT_SWITCH=0 ENV CEPHEUS_FRAME_SKIP=4 ENV CEPHEUS_INFER_WIDTH=320 ENV CEPHEUS_KEEP_WARM_SEC=120 ENV CEPHEUS_KEEP_WARM_INITIAL_SEC=45 COPY requirements-cloud.txt /app/requirements.txt RUN pip install --no-cache-dir -r /app/requirements.txt COPY main.py vision_engine_cloud.py vision_engine.py vision_runtime.py vision_pipeline.py vision_session.py agentic_service.py agentic_orchestrator.py gemini_config.py emergency_maps_service.py face_metadata.py alert_routing.py auth_service.py refresh_token_store.py observability.py security_headers.py rate_limiter.py persistence.py security_config.py store_locks.py /app/ RUN mkdir -p /app/Face_Recognition /app/data /app/uploads COPY Face_Recognition/*.py ./Face_Recognition/ EXPOSE 7860 CMD ["sh", "-c", "exec uvicorn main:app --host 0.0.0.0 --port ${PORT:-7860}"]