# Use HF Spaces optimized base (eliminates pipfreeze stage) FROM python:3.12-slim # Install ONLY essential system deps - no extra libs causing cache conflicts RUN apt-get update -qq && apt-get install -y --no-install-recommends \ ffmpeg \ libgl1 \ && apt-get clean && rm -rf /var/lib/apt/lists/* # Set unbuffered Python + working dir ENV PYTHONUNBUFFERED=1 WORKDIR /code # Copy ONLY requirements (pin exact versions, no wildcards) COPY requirements.txt . # Force clean pip install WITHOUT cache mounts (HF Spaces ignores them) RUN pip install --no-cache-dir --disable-pip-version-check \ pip==24.2 \ && pip install --no-cache-dir -r requirements.txt \ && pip cache purge # Copy app AFTER pip (isolates code changes) COPY app.py . # HF Spaces Gradio compatibility symlinks RUN mkdir -p /home/user/app && \ ln -sf /code /home/user/app && \ ln -sf /code/app.py /home/user/app/app.py # Non-root user (HF Spaces requirement) RUN adduser --disabled-password --gecos '' user && \ chown -R user:1000 /code USER user EXPOSE 7860 CMD ["python", "app.py"]