FROM python:3.10-slim # HF Spaces runs containers as UID 1000 RUN useradd -m -u 1000 user USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH \ HF_HOME=/home/user/.cache/huggingface WORKDIR /home/user/app # Install CPU-only PyTorch first (separate wheel index) RUN pip install --no-cache-dir --user \ torch==2.4.0 torchvision==0.19.0 torchaudio==2.4.0 \ --index-url https://download.pytorch.org/whl/cpu # Install remaining dependencies COPY --chown=user requirements.txt . RUN pip install --no-cache-dir --user -r requirements.txt # Pre-download ProtT5-XL at build time so users never wait for it RUN python -c "\ from huggingface_hub import snapshot_download; \ snapshot_download('Rostlab/prot_t5_xl_half_uniref50-enc')" COPY --chown=user . . EXPOSE 7860 CMD ["python", "app.py"]