| # syntax=docker/dockerfile:1 | |
| FROM python:3.10-slim | |
| ENV PIP_NO_CACHE_DIR=1 \ | |
| PYTHONDONTWRITEBYTECODE=1 \ | |
| PYTHONUNBUFFERED=1 \ | |
| HF_HUB_ENABLE_HF_TRANSFER=1 \ | |
| HF_HOME=/data/hf \ | |
| TRANSFORMERS_CACHE=/data/hf \ | |
| DIFFUSERS_CACHE=/data/hf \ | |
| HUGGINGFACE_HUB_CACHE=/data/hf | |
| WORKDIR /app | |
| # System deps | |
| RUN apt-get update && apt-get install -y --no-install-recommends \ | |
| git \ | |
| gcc \ | |
| libgl1 \ | |
| libglib2.0-0 \ | |
| libgthread-2.0-0 \ | |
| libgomp1 \ | |
| libgcc-s1 \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Copy code | |
| COPY . /app | |
| # Install deps | |
| RUN python -m pip install --upgrade pip && \ | |
| python -m pip install -r requirements.txt && \ | |
| # Install CUDA-enabled PyTorch wheels (CUDA 12.1); required for GPU on Spaces | |
| python -m pip install --index-url https://download.pytorch.org/whl/cu121 torch torchvision torchaudio --upgrade --force-reinstall && \ | |
| # Ensure xformers is not installed (optional perf lib; skip for compatibility) | |
| python -m pip uninstall -y xformers || true && \ | |
| # Speed up and lower RAM during model load (avoid upgrading hub) | |
| python -m pip install --no-deps accelerate && \ | |
| # Ensure compatible hub version providing required symbols | |
| python -m pip install --upgrade --force-reinstall "huggingface-hub==0.20.3" "diffusers==0.23.0" | |
| EXPOSE 7860 | |
| ENV DATA_DIR=/data | |
| RUN mkdir -p /data /data/hf && chmod -R 777 /data /data/hf | |
| CMD ["python", "-m", "uvicorn", "server:app", "--host", "0.0.0.0", "--port", "7860"] | |