Spaces:
Runtime error
Runtime error
| # FROM python:3.14.2-slim-trixie | |
| # FROM nvidia/cuda:13.0.2-cudnn-runtime-ubuntu24.04 | |
| FROM nvidia/cuda:12.4.1-cudnn-runtime-ubuntu22.04 | |
| # ============================================================ | |
| # 基础环境变量 | |
| # PYTHONUNBUFFERED 日志无缓冲(Jobs 实时输出) | |
| # HF_HOME 是 Hugging Face 的“主目录” | |
| # TRANSFORMERS_CACHE 是模型文件真正保存的地方 | |
| # ============================================================ | |
| ENV DEBIAN_FRONTEND=noninteractive \ | |
| PYTHONUNBUFFERED=1 \ | |
| GIT_LFS_SKIP_SMUDGE=1 \ | |
| HF_HOME=/home/hfuser/.cache/huggingface \ | |
| TRANSFORMERS_CACHE=/home/hfuser/.cache/huggingface/hub \ | |
| LANG=C.UTF-8 | |
| WORKDIR /app | |
| # ========== 系统依赖 ========== | |
| RUN apt-get update && apt-get install -y \ | |
| python3 \ | |
| python3-pip \ | |
| python3-venv \ | |
| git \ | |
| git-lfs \ | |
| ca-certificates \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # ============================================================ | |
| # 创建非 root 用户(HF 强烈推荐) | |
| # - 不指定 UID,避免 UID=1000 冲突 | |
| # RUN useradd -m -u 1000 -s /bin/bash hfuser | |
| # 创建 Hugging Face cache 目录并赋权 | |
| # ============================================================ | |
| RUN useradd -m hfuser \ | |
| && mkdir -p /home/hfuser/.cache/huggingface \ | |
| && chown -R hfuser:hfuser /home/hfuser | |
| # ============================================================ | |
| # 拷贝应用代码 | |
| # - app/ 里包含 app.py + entrypoint.sh | |
| # ============================================================ | |
| COPY app/ /app/ | |
| # COPY app/*.py ./ | |
| # entrypoint.sh 单独赋执行权限(避免整个目录 755) | |
| RUN chmod +x /app/entrypoint.sh \ | |
| && chown -R hfuser:hfuser /app | |
| # ============================================================ | |
| # 切换到非 root 用户 | |
| # ============================================================ | |
| USER hfuser | |
| # ============================================================ | |
| # Python 依赖 | |
| # ============================================================ | |
| COPY requirements.txt /app/requirements.txt | |
| # 创建虚拟环境 | |
| RUN python3 -m venv /app/venv \ | |
| && /app/venv/bin/pip install --upgrade pip \ | |
| && /app/venv/bin/pip install --no-cache-dir -r /app/requirements.txt | |
| # venv 创建完成后,再加入 PATH | |
| ENV PATH="/app/venv/bin:$PATH" | |
| # ============================================================ | |
| # 拉 InfiniteTalk 源码(不拉权重) | |
| # - 权重由构建时 hf_hub_download 获取 | |
| # ============================================================ | |
| RUN git clone https://github.com/MeiGen-AI/InfiniteTalk.git /app/InfiniteTalk \ | |
| && cd /app/InfiniteTalk \ | |
| && git checkout fd631497254e065777f2b2d0642de3600d674e24 | |
| # 增加环境变量 PYTHONPATH,以确保 Python 能找到 indextts 模块 | |
| ENV PYTHONPATH=/app/InfiniteTalk:${PYTHONPATH} | |
| # ============================================================ | |
| # 🔥 build 阶段下载模型权重 | |
| # ============================================================ | |
| RUN python /app/download_models.py | |
| # 7. 默认入口 | |
| ENTRYPOINT ["/app/entrypoint.sh"] | |
| # 还要合成最终视频等流程 |