File size: 2,105 Bytes
3724307 782f68a 69e28b9 b3746d4 69e28b9 3724307 50ff874 af32b85 782f68a 3724307 50ff874 742c698 50ff874 3724307 50ff874 af32b85 3724307 b3746d4 50ff874 26310e0 3724307 48920da 50ff874 3724307 50ff874 91195d8 50ff874 26310e0 3724307 50ff874 3724307 50ff874 3724307 b3746d4 3724307 50ff874 3724307 b3746d4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# 使用官方 PyTorch 镜像作为基础
FROM pytorch/pytorch:2.3.1-cuda11.8-cudnn8-runtime
# 切换到 root 用户以安装系统依赖
USER root
# 设置环境变量
ENV PYTHONUNBUFFERED=1 \
PIP_DISABLE_PIP_VERSION_CHECK=1 \
PIP_PREFER_BINARY=1 \
NUMBA_CACHE_DIR=/tmp/numba_cache
# 设置工作目录
WORKDIR /app
# 安装系统依赖
RUN apt-get update && \
apt-get install -y --no-install-recommends \
ffmpeg libsox-dev git \
build-essential cmake ninja-build pkg-config && \
rm -rf /var/lib/apt/lists/* && \
mkdir -p /tmp/numba_cache && chmod -R 777 /tmp/numba_cache
# [双重保障-步骤1] 预先创建 /nltk_data 目录并赋予 777 权限
RUN mkdir -p /nltk_data && chmod 777 /nltk_data
# 克隆 GPT-SoVITS 仓库
RUN git clone --depth 1 https://github.com/RVC-Boss/GPT-SoVITS.git /app
# 安装 Python 依赖
RUN pip install --upgrade pip && \
pip install --no-cache-dir -r /app/requirements.txt && \
pip install --no-cache-dir --force-reinstall numpy==1.23.5 librosa==0.9.2 numba==0.56.4 && \
pip install --no-cache-dir fastapi uvicorn soundfile huggingface_hub ffmpeg-python
# [双重保障-步骤2 / 关键修复]
# 在构建镜像时,预先下载好 NLTK 所需的所有数据包,包括新发现的 "averaged_perceptron_tagger_eng"
RUN python -c "import nltk; nltk.download('punkt', quiet=True, download_dir='/nltk_data'); nltk.download('averaged_perceptron_tagger', quiet=True, download_dir='/nltk_data'); nltk.download('averaged_perceptron_tagger_eng', quiet=True, download_dir='/nltk_data')"
# 预下载依赖模型
COPY download_support_models.py /app/download_support_models.py
RUN python /app/download_support_models.py || true
# 复制您自己的权重文件和参考音频
COPY weights/ /app/pretrained_models/shantianliang/
COPY reference_audio/ /app/reference_audio/
# 更改 /app 目录所有权,赋予运行时用户写入权限
RUN chown -R 1000:1000 /app
# 暴露 API 端口
EXPOSE 7860
# 容器启动命令
CMD ["python", "api_v2.py", "-a", "0.0.0.0", "-p", "7860", "-c", "GPT_SoVITS/configs/tts_infer.yaml"] |