FROM python:3.11-slim ENV DEBIAN_FRONTEND=noninteractive \ PYTHONUNBUFFERED=1 \ PORT=7860 RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ ffmpeg \ libgl1 \ libglib2.0-0 \ libsm6 \ libxext6 \ && rm -rf /var/lib/apt/lists/* # Create non-root user (UID 1000 required for Hugging Face Spaces) RUN useradd -m -u 1000 user WORKDIR /app RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir \ fastapi \ "uvicorn[standard]" \ websockets \ pydantic \ numpy \ opencv-python-headless \ Pillow \ "onnxruntime-gpu==1.21.0" \ nvidia-cuda-runtime-cu12 \ "nvidia-cudnn-cu12>=9.0,<10.0" \ nvidia-cublas-cu12 \ nvidia-cufft-cu12 \ nvidia-curand-cu12 \ nvidia-nvjitlink-cu12 \ huggingface_hub \ pytest \ httpx && \ find /usr/local/lib/python3.11/site-packages/nvidia -type d -name "lib" > /etc/ld.so.conf.d/nvidia-pip.conf && \ ldconfig ENV LD_LIBRARY_PATH="/usr/local/lib/python3.11/site-packages/nvidia/cudnn/lib:/usr/local/lib/python3.11/site-packages/nvidia/cublas/lib:/usr/local/lib/python3.11/site-packages/nvidia/cuda_runtime/lib:/usr/local/lib/python3.11/site-packages/nvidia/cufft/lib:/usr/local/lib/python3.11/site-packages/nvidia/curand/lib:${LD_LIBRARY_PATH}" COPY --chown=user:user . /app RUN chmod +x /app/download_models.sh && \ mkdir -p /app/storage/snapshots /app/storage/recordings /app/models && \ chown -R user:user /app USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH RUN ./download_models.sh EXPOSE 7860 CMD ["python3", "main.py"]