0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Dify v1.10.1へのアップグレードでつまづいたポイントと解決策

Last updated at Posted at 2025-12-08

はじめに

メドレーでは、社内の生成AI活用基盤としてオープンソースのLLMアプリ開発プラットフォーム「Dify」をセルフホストで運用しています。現在、約750名が利用しており、各事業のアシスタントボットをはじめとして、営業支援、カスタマーサポート支援、求人票作成支援など約50のAIアプリが稼働しています。

導入の背景や詳細については、以前、弊社VPoEが Findy Tools に寄稿した記事をご覧ください。

今回、v1.9.2からv1.10.1へアップグレードした際に、見落としてしまっていた躓きポイントがあったので、同じ状況の方の参考になればと思い共有します。

環境

  • Dify v1.9.2 → v1.10.1
  • Docker Compose によるセルフホスト
    • PostgreSQL, Redis, Weaviate
  • AWS EC2 (Amazon Linux 2023)

今回のアップグレードで変わったこと

v1.10.1では.env.exampleに多くの新規設定が追加されました。

主な変更点:

  • Plugin Daemon の追加: プラグイン機能のためのデーモンサービスが新設
  • 新しい環境変数: TRIGGER_URL, INTERNAL_FILES_URL, DB_TYPE など
  • データベースサービス名の変更: dbdb_postgres

躓いたポイント

1. plugin_daemon が起動しない

アップグレード後、docker compose ps で確認すると plugin_daemonRestarting を繰り返していました。

docker-plugin_daemon-1   Restarting (2) 15 seconds ago

原因: ログを確認すると、データベース接続エラーでした。

failed to connect to `host=db user=postgres database=dify_plugin`:
hostname resolving error (lookup db on 127.0.0.11:53: no such host)

解決策: .envDB_HOSTdb から db_postgres に変更。

- DB_HOST=db
+ DB_HOST=db_postgres

新しい docker-compose.yaml ではPostgreSQLのサービス名が db_postgres に変わっていたのが原因でした。

2. .env と .env.example の差分が大きい

既存の .env をそのまま使っていたら、新機能に必要な設定が足りず動作しませんでした。

解決策: .env.example をベースに、本番環境の値をマージする形で .env を再作成しました。

主に追加が必要だった設定:

# Plugin Daemon用
TRIGGER_URL=https://your-domain.com
INTERNAL_FILES_URL=http://api:5001

# UTF-8エンコード
LANG=en_US.UTF-8
LC_ALL=en_US.UTF-8
PYTHONIOENCODING=utf-8

# データベースタイプの明示
DB_TYPE=postgresql

# Plugin Daemon設定
PLUGIN_DAEMON_KEY=...
PLUGIN_DAEMON_URL=http://plugin_daemon:5002
PLUGIN_DIFY_INNER_API_KEY=...

アップグレード手順まとめ

  1. 事前にローカルで差分を確認

    サーバー上で作業を始める前に、ローカル環境で差分を確認しておくと安全です。

    • 現在の .env をサーバーからダウンロード
    • GitHub上の最新 .env.example と比較
    • VSCode等のエディタで差分を確認し、マージ方針を決めておく
  2. バックアップ取得

    cp .env .env.backup
    cp docker-compose.yaml docker-compose.yaml.backup
    
  3. 最新のコードを取得

    git checkout main
    git pull origin main
    
  4. コンテナとネットワークのクリーンアップ

    docker compose down でコンテナを停止します。

    docker compose down
    

    通常はこれで全コンテナが停止しますが、まれにネットワークやコンテナが残る場合があります。その場合は以下の手順で手動クリーンアップします。

    ネットワークが残っている場合:

    # ネットワークエラーが表示された場合
    # ! Network docker_default  Resource is still in use
    
    # 旧DBコンテナを強制削除
    docker rm -f docker-db-1
    
    # 未使用のネットワークをクリーンアップ
    docker network prune -f
    

    クリーンアップ確認:

    docker compose ps
    # 何も表示されなければOK
    
  5. .env の更新

    Step 1で確認した差分をもとに、.env.example をベースに本番固有の値をマージします。その後、 元々の.envに設定していた本番環境の値を書き加えます。

    # .env.example をコピーして編集
    cp docker/.env.example .env
    vi .env
    
  6. コンテナ再起動

    docker compose down
    docker compose pull
    docker compose up -d
    
  7. 起動確認

    docker compose ps
    docker compose logs plugin_daemon --tail 50
    

おわりに

Difyは活発に開発が進んでいるため、アップグレード時は .env.exampledocker-compose.yaml の両方を確認することをおすすめします。

特に今回のようにサービス名が変わるケースでは、既存の .env をそのまま使い回すと思わぬエラーに遭遇します。公式の .env.example をベースに差分をマージする方法が確実です。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?