face-recog-beta / Dockerfile
amtsal's picture
feat: fix thread n process management
c5eb003
# ---------- CPU BASE ----------
# Menggunakan image Python official yang ringan (slim) berbasis Debian
# Tidak perlu image NVIDIA/CUDA karena kita hanya menggunakan CPU
FROM python:3.10-slim
ENV DEBIAN_FRONTEND=noninteractive \
PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1
WORKDIR /app
# System deps
# Kita tetap butuh library untuk OpenCV (libglib, libsm6, dll)
# dan build-essential untuk berjaga-jaga jika ada library python yang perlu dicompile
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential gcc g++ make \
libglib2.0-0 libsm6 libxrender1 libxext6 \
&& rm -rf /var/lib/apt/lists/*
# Source - https://stackoverflow.com/a
# Posted by Tushar Kolhe, modified by community. See post 'Timeline' for change history
# Retrieved 2025-12-05, License - CC BY-SA 4.0
RUN apt-get update && apt-get install ffmpeg libsm6 libxext6 -y
# Python deps
COPY requirements.txt /app/requirements.txt
# Upgrade pip dan install requirements
RUN pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir -r /app/requirements.txt
# App
COPY main.py /app/main.py
COPY liveness.py /app/liveness.py
COPY helper.py /app/helper.py
COPY 2.7_80x80_MiniFASNetV2.onnx /app/2.7_80x80_MiniFASNetV2.onnx
# Runtime env
ENV FACE_DET_SIZE=480,480
# PENTING: Set provider hanya ke CPU
ENV ORT_PROVIDERS=CPUExecutionProvider
# Hugging Face Spaces secara default biasanya mengharapkan port 7860.
# Jika config Space Anda mengharuskan 8000, biarkan 8000.
# Namun standard Docker Space adalah 7860.
EXPOSE 7860
# Workers bisa dinaikkan sedikit karena di CPU tidak ada limit context locking seperti di GPU
CMD ["uvicorn", "main:app", "--host=0.0.0.0", "--port=7860", "--workers=2"]