dolceTTS / Dockerfile
horiyouta's picture
2502061816
b4409b8
Raw
History Blame Contribute Delete
2.18 kB
FROM python:3.10
# 1. システム依存関係のインストール
USER root
RUN apt-get update && apt-get install -y --no-install-recommends \
cmake build-essential libasound2-dev libsndfile1 git \
mecab libmecab-dev mecab-ipadic-utf8 \
&& rm -rf /var/lib/apt/lists/*
# ユーザー設定
RUN useradd -m -u 1000 user
USER user
ENV HOME=/home/user \
PATH=/home/user/.local/bin:$PATH
WORKDIR $HOME/app
# 2. ビルド用ツールの固定と NumPy 1.x 系のインストール
RUN pip install --no-cache-dir --upgrade pip
RUN pip install --no-cache-dir "setuptools<70.0.0" "Cython<3.0" wheel "numpy<2.0" huggingface_hub
# 3. pyopenjtalk のインストール
RUN pip install --no-cache-dir pyopenjtalk==0.3.0 --no-build-isolation
# 4. ソースコードをコピー
COPY --chown=user . $HOME/app
# 5. 各種パッチ処理
# 接続エラー回避 127.0.0.1
RUN find style_bert_vits2 -name "*.py" -exec sed -i 's/socket.gethostname()/"127.0.0.1"/g' {} + || true
# モデルが無くても終了しないように server_editor.py を修正 (sys.exit(1) を無効化)
RUN sed -i 's/sys.exit(1)/pass/g' server_editor.py || true
# 6. モデル用フォルダをあらかじめ作成
RUN mkdir -p model_assets
# 7. 残りの依存関係をインストール
RUN pip install --no-cache-dir "numpy<2.0" && \
pip install --no-cache-dir -r requirements.txt && \
pip install --no-cache-dir "numpy<2.0"
# 8. 実行設定
EXPOSE 7860
# 起動コマンド
CMD python -c "import pyopenjtalk; pyopenjtalk._extract_dic()" && \
python -c 'import os; from huggingface_hub import hf_hub_download; \
bert_dir = "bert/deberta-v2-large-japanese-char-wwm"; \
os.makedirs(bert_dir, exist_ok=True); \
files = ["config.json", "pytorch_model.bin", "tokenizer_config.json", "vocab.txt"]; \
[hf_hub_download(repo_id="ku-nlp/deberta-v2-large-japanese-char-wwm", filename=f, local_dir=bert_dir, local_dir_use_symlinks=False) for f in files if not os.path.exists(os.path.join(bert_dir, f))]' && \
python server_editor.py --line_length 50 --line_count 3 --skip_static_files --skip_default_models --port 7860