Spaces:
Build error
Build error
| # 1. 使用 NVIDIA 官方提供的 CUDA 12.1 + Python 3.10 基礎鏡像 | |
| FROM nvidia/cuda:12.1.1-cudnn8-runtime-ubuntu22.04 | |
| # 設定環境變數,防止互動式安裝卡住 | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV PYTHONUNBUFFERED=1 | |
| ENV PATH="/home/user/.local/bin:${PATH}" | |
| # 🌟【最核心關鍵行】 | |
| # 強行把 user 的本地私有套件庫路徑註冊進 Linux 全域變數, | |
| # 這樣 app.py 在開機後動態 pip install 的 smplx、pytorch-lightning,子程序開新視窗時才讀得到! | |
| ENV PYTHONPATH="/home/user/.local/lib/python3.10/site-packages:${PYTHONPATH}" | |
| # 2. 安裝系統等級依賴 (FFmpeg, wget, Mesa 3D 庫) | |
| RUN apt-get update && apt-get install -y \ | |
| python3.10 python3-pip python3.10-venv \ | |
| ffmpeg git wget xz-utils \ | |
| libgl1-mesa-glx libglib2.0-0 libosmesa6-dev libegl1-mesa-dev freeglut3-dev \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 建立 python 指向 python3.10 的軟連結 | |
| RUN ln -s /usr/bin/python3.10 /usr/bin/python | |
| # 3. 建立標準 user 使用者 (Hugging Face Spaces 安全規範) | |
| RUN useradd -m -u 1000 user | |
| USER user | |
| ENV HOME=/home/user | |
| WORKDIR $HOME/app | |
| # 4. 🌟【如你所願:僅把下載 Blender 留在這裡】在 Build 階段下載並配置 Linux 版 Blender 3.6.0 | |
| RUN wget https://download.blender.org/release/Blender3.6/blender-3.6.0-linux-x64.tar.xz \ | |
| && tar -xf blender-3.6.0-linux-x64.tar.xz \ | |
| && rm blender-3.6.0-linux-x64.tar.xz \ | |
| && mv blender-3.6.0-linux-x64 blender | |
| # 5. 先複製依賴清單進貨櫃安裝 | |
| COPY --chown=user:user requirements.txt $HOME/app/ | |
| # 6. 安裝 Python 基本與前處理輕量依賴 | |
| RUN pip3 install --no-cache-dir --upgrade pip && \ | |
| pip3 install --no-cache-dir -r requirements.txt | |
| # 7. 將剩餘的所有文字程式碼、configs 複製進貨櫃 | |
| COPY --chown=user:user . $HOME/app | |
| # 8. 曝露 Gradio 預設端口 | |
| EXPOSE 7860 | |
| # 9. 啟動指令:直接呼叫最外層的 app.py | |
| CMD ["python3", "app.py"] |