| # Development Dockerfile for Yomitalk | |
| # Based on the production Dockerfile but includes development tools | |
| FROM python:3.11-slim | |
| WORKDIR /app | |
| # VOICEVOX規約に自動同意するための環境変数を設定 | |
| ENV VOICEVOX_ACCEPT_AGREEMENT=true | |
| # 対話型プロンプトを無効化し、ページャーをcatに置き換える | |
| ENV PAGER=cat | |
| ENV LESSCHARSET=utf-8 | |
| # システム依存パッケージのインストール(開発用ツールを追加) | |
| RUN apt-get update \ | |
| && apt-get install -y --no-install-recommends \ | |
| make \ | |
| sudo \ | |
| curl \ | |
| ffmpeg \ | |
| git \ | |
| wget \ | |
| unzip \ | |
| build-essential \ | |
| pkg-config \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # リポジトリのコードをコピー | |
| COPY . /app/ | |
| # Python依存関係のインストール(Docker内では仮想環境を使わない) | |
| RUN pip install --upgrade pip | |
| # 開発用依存関係をインストール | |
| RUN pip install --timeout 300 --retries 3 \ | |
| pre-commit \ | |
| playwright \ | |
| pytest \ | |
| pytest-playwright \ | |
| pytest-bdd \ | |
| pytest-asyncio \ | |
| pytest-mock \ | |
| black \ | |
| isort \ | |
| flake8 \ | |
| mypy \ | |
| autoflake \ | |
| autopep8 | |
| # 大きなパッケージを段階的にインストール | |
| # PyTorch関連のパッケージを先にインストール | |
| RUN pip install --timeout 600 --retries 5 torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cpu | |
| # 残りの依存関係をインストール | |
| RUN pip install --timeout 300 --retries 3 -r requirements.txt | |
| # パーミッション問題を解決するため、dataディレクトリの権限を設定 | |
| RUN mkdir -p /app/data/temp /app/data/output && chmod -R 777 /app/data | |
| # ポート設定 | |
| ENV PORT=7860 | |
| # 開発環境では setup.sh が VOICEVOX Core のセットアップを行うため、 | |
| # ここではスキップ(マウントされたボリュームにインストールされる) | |
| # 開発環境用の起動コマンド(実際にはdevcontainerのpostCreateCommandでsetup.shが実行される) | |
| CMD ["python", "app.py"] | |