Difyにboto3を変更したカスタムDockerイメージの構築手順
Difyにboto3を変更したカスタムDockerイメージの構築手順
- はじめに
- 1. Dockerfileの作成
- 2. Dockerイメージのビルド
- 3. docker-compose.yamlの更新
- 変更点:
- 4. コンテナの再起動
- 注意事項
- まとめ
はじめに
DifyのDockerイメージに特定バージョンのboto3を変更する手順を紹介します。Dockerfileとイメージ名をより意味のある名前に変更し、バージョン管理しやすくする改善を加えています。
1. Dockerfileの作成
ファイル名をDockerfile.dify-api-boto3-1.0.0
に変更(バージョンと機能が分かりやすい命名)
# Dockerfile.dify-api-boto3-1.0.0
FROM langgenius/dify-api:1.0.0
RUN cd /app/api && \
pip install \
boto3==1.35.99 \
botocore==1.35.99 \
s3transfer==0.10.4
2. Dockerイメージのビルド
イメージ名をdify-api:1.0.0-boto3
に変更(ハイフン区切りで統一)
docker buildx build -t langgenius/dify-api:1.0.0-boto3 -f Dockerfile.dify-api-boto3-1.0.0 .
3. docker-compose.yamlの更新
変更点:
- イメージ名を
langgenius/dify-api:1.0.0-boto3
に統一 - サービス間の依存関係とネットワーク設定を確認
services:
api:
image: langgenius/dify-api:1.0.0-boto3
# その他の設定は変更なし...
worker:
image: langgenius/dify-api:1.0.0-boto3
# その他の設定は変更なし...
4. コンテナの再起動
データの永続化ボリュームを削除してクリーンな状態で再起動
docker compose down
rm -rf volumes/
docker compose up -d
注意事項
- 既存のデータが必要な場合はボリューム削除前にバックアップを取得してください
- 本番環境で使用する場合はバージョン番号を適宜変更してください
まとめ
boto3の変更により互換性のあるS3 Storage APIでDifyを運用できるようになります。
参考資料:
- fix: MissingContentLength in boto3 version 1.36.1