# /Dockerfile (in the root of your repository) FROM python:3.11-slim 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 CEPHEUS_KEEP_WARM_SEC=120 ENV CEPHEUS_KEEP_WARM_INITIAL_SEC=45 COPY backend/requirements-cloud.txt /app/requirements.txt RUN pip install --no-cache-dir -r /app/requirements.txt RUN python -c "\ import os; \ from insightface.app import FaceAnalysis; \ app = FaceAnalysis(name=os.environ.get('FACE_MODEL_PACK', 'buffalo_sc'), \ root='/app/model_cache', \ providers=['CPUExecutionProvider']); \ app.prepare(ctx_id=-1, det_size=(320,320)); \ print('InsightFace model pre-baked OK')" # Copy only the necessary backend files COPY backend/*.py /app/ # Explicit copies as fallback in case wildcard glob misses files on some CI runners COPY backend/face_live_search.py /app/face_live_search.py COPY backend/face_metadata.py /app/face_metadata.py RUN mkdir -p /app/Face_Recognition/faces_db /app/Face_Recognition/temp_faces_db /app/Face_Recognition/face_database /app/data /app/uploads COPY backend/Face_Recognition/*.py /app/Face_Recognition/ COPY backend/Face_Recognition/faces_db/ /app/Face_Recognition/faces_db/ COPY backend/Face_Recognition/temp_faces_db/ /app/Face_Recognition/temp_faces_db/ # face_database/ is runtime-only on HF (no enrollment JPGs in git); mkdir above is enough EXPOSE 7860 CMD ["sh", "-c", "exec uvicorn main:app --host 0.0.0.0 --port ${PORT:-7860}"]