FROM python:3.11-slim # Non-root user for HF Spaces RUN useradd -m -u 1000 user USER user ENV HOME=/home/user \ PATH=/home/user/.local/bin:$PATH \ PYTHONUNBUFFERED=1 \ GRADIO_SERVER_NAME=0.0.0.0 \ GRADIO_SERVER_PORT=7860 \ HF_HOME=/home/user/.cache/huggingface WORKDIR /home/user/app # CPU-only torch from PyTorch index (skip CUDA wheels, ~200MB vs ~2GB) RUN pip install --user --no-cache-dir --index-url https://download.pytorch.org/whl/cpu \ torch==2.6.0 # App deps — all pinned to known-compatible versions RUN pip install --user --no-cache-dir \ "gradio[mcp]==5.30.0" \ "huggingface_hub>=0.27.0,<1.0" \ "numpy>=1.26,<2.3" \ "pandas>=2.1" \ "yfinance>=0.2.50" \ "curl_cffi>=0.7" \ "websockets>=13.0" \ "einops>=0.7" \ "safetensors>=0.4" \ "tqdm>=4.66" \ "transformers>=4.40,<5.0" \ "chronos-forecasting>=1.5.2" \ "timesfm[torch]>=1.3.0" COPY --chown=user . /home/user/app EXPOSE 7860 CMD ["python", "app.py"]