FROM continuumio/miniconda3:24.7.1-0 ENV DEBIAN_FRONTEND=noninteractive \ PYTHONUNBUFFERED=1 \ PYTHONFAULTHANDLER=1 \ PIP_NO_CACHE_DIR=1 \ is_half=False \ is_share=False \ HF_HOME=/data/.cache/huggingface \ GRADIO_SERVER_NAME=0.0.0.0 \ GRADIO_SERVER_PORT=7860 \ TERM=xterm SHELL ["/bin/bash", "-lc"] RUN apt-get update && apt-get install -y --no-install-recommends \ git \ git-lfs \ ffmpeg \ sox \ libsox-dev \ libsndfile1 \ build-essential \ curl \ ca-certificates \ && rm -rf /var/lib/apt/lists/* WORKDIR /app RUN git clone --depth 1 https://github.com/RVC-Boss/GPT-SoVITS.git . RUN python - <<'PY' from pathlib import Path replacements = { 'webui_port_main = 9874': 'webui_port_main = 7860', 's1v3.ckpt': 's1v3-ru.ckpt', 's2Gv2ProPlus.pth': 's2Gv2ProPlus-rus.pth', 'phoneme_vocab_size: 732': 'phoneme_vocab_size: 753', 'phoneme_vocab_size = 732': 'phoneme_vocab_size = 753', } for path in [Path('config.py'), *Path('GPT_SoVITS/configs').glob('*.yaml')]: if not path.exists(): continue text = path.read_text() for old, new in replacements.items(): text = text.replace(old, new) path.write_text(text) PY RUN conda create -y -n GPTSoVits python=3.10 && conda clean -afy RUN source /opt/conda/etc/profile.d/conda.sh && \ conda activate GPTSoVits && \ bash install.sh --device CPU --source HF && \ pip install --no-cache-dir epitran \ "fastapi[standard]==0.115.2" \ "starlette==0.40.0" \ "gradio==4.44.1" RUN mkdir -p GPT_SoVITS/pretrained_models/v2Pro GPT_weights_v2ProPlus SoVITS_weights_v2ProPlus && \ curl -L --retry 5 -o GPT_SoVITS/pretrained_models/s1v3-ru.ckpt \ https://huggingface.co/fuckSelf/GPT-SoVITS-Russian/resolve/main/s1v3-ru.ckpt && \ curl -L --retry 5 -o GPT_SoVITS/pretrained_models/v2Pro/s2Gv2ProPlus-rus.pth \ https://huggingface.co/fuckSelf/GPT-SoVITS-Russian/resolve/main/s2Gv2ProPlus-rus.pth && \ curl -L --retry 5 -o GPT_weights_v2ProPlus/ru-base-e20.ckpt \ https://huggingface.co/fuckSelf/GPT-SoVITS-Russian/resolve/main/ru-base-e20.ckpt && \ curl -L --retry 5 -o SoVITS_weights_v2ProPlus/ru-base_e10_s123570.pth \ https://huggingface.co/fuckSelf/GPT-SoVITS-Russian/resolve/main/ru-base_e10_s123570.pth EXPOSE 7860 CMD ["bash", "-lc", "source /opt/conda/etc/profile.d/conda.sh && conda activate GPTSoVits && cd /app && echo '=== GPT-SoVITS startup on 7860 ===' && python -u webui.py"]