FROM python:3.10-slim # System-level deps. build-essential is only needed if a pip package needs # to compile from source — safe to keep, drop later if you want a smaller image. RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential \ && rm -rf /var/lib/apt/lists/* # HF Spaces Docker containers run as a non-root user (uid 1000) by convention. # Skipping this causes permission errors when the app tries to write to # ~/.cache/huggingface at runtime. RUN useradd -m -u 1000 user USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH WORKDIR /home/user/app # Copy + install requirements first so Docker caches this layer separately # from your source code — code changes won't force a full pip reinstall. COPY --chown=user requirements.txt . RUN pip install --no-cache-dir --upgrade pip && \ pip install --no-cache-dir -r requirements.txt # Now copy the rest of the app (src/, README.md, etc.) COPY --chown=user . . # Writable HF cache location + your model source config ENV HF_HOME=/home/user/.cache/huggingface \ MODEL_SOURCE=hub \ HF_USERNAME=Pro-aryan00 # HF Spaces routes external traffic to port 7860 by default for Docker SDK EXPOSE 7860 CMD ["streamlit", "run", "src/app.py", \ "--server.port=7860", \ "--server.address=0.0.0.0", \ "--server.headless=true", \ "--server.enableCORS=false", \ "--server.enableXsrfProtection=false"]