セルフDify環境のバージョンアップをしてみた

 

はじめに

過去2回に渡って、AlmaLinux上にセルフDify環境を構築して、簡易なチャットBotを作ってみました。

前々回:AlmaLinux上で動作させるセルフDify環境を構築してみた

前回:セルフDify環境でチャットBOTを作成してみた

最近あまり利用できていなかったんですが、Difyのアップデート速度は凄まじいようで、これまでに構築した環境はかなりバージョンが古くなっていました。

そこで、今回はDifyのバージョンアップ手順を備忘録として残しておきます。

バージョンアップ前の環境はバージョン0.8.3です。

dify-update-02

これを2025年5月時点の最新である、バージョン1.3.1にバージョンアップしてみます。

既存環境のバックアップ

公式のバージョンアップ手順を見ると、docker-composeのyamlファイルとDockerのボリュームデータのディレクトリをバックアップしろとありますが、確実性のために一旦コンテナを停止させたうえで、Difyディレクトリ全体をバックアップします。

# cd /usr/local/dify/docker ※ディレクトリ位置は適宜読替てください
# docker compose down
# cd /usr/local
# tar fvzcp dify.tgz dify/

これでもしバージョンアップに失敗した場合でも、バックアップから復旧できます。

バージョンアップ

次にDifyの最新データをGitHubから入手します。

# cd /usr/local/dify ※Difyのソースディレクトリに移動
# git fetch origin ※ GitHubから最新のデータを取得

docker-compose.yamlや.envファイルを変更していた場合は、必要に応じて修正しておきます。

利用可能なバージョンを見てみます。

# git tag
0.10.0
0.10.1
0.10.2
(~途中略~)
1.3.0
1.3.1

最新タグが1.3.1だということが分かります。

次にタグをバージョン1.3.1に切り替えます。

# git checkout tags/1.3.1 -b v1.3.1 
※バージョン1.3.1のタグに切り替えると同時にv1.3.1というブランチを作成

# git branch ※ブランチが切り替わったことを確認
  main
* v1.3.1

更に最新を利用したい場合は、

# git pull origin main

でがっつり最新にしても良いかもしれません。

次にDockerを起動します。

# cd /usr/local/dify/docker
# docker compose up -d

起動したらブラウザからDifyにアクセスしてみます。

元のアカウントでログインできて、右上のアカウントマーク⇒「Difyについて」からバージョンが上がっていることを確認します。

dify-update-04

バージョンアップ前に作成したアプリや設定が消えていないかを確認してください。

私の環境では、ここで一つ問題が起きました。

バージョンアップ前に作成したアプリは消えていなかったのですが、モバイルプロバイダーの設定が消えていました。

dify-update-06

公式のマニュアルを見ると、

dify-update-08

といった記載があるので、その手順が足りていないのかと考え試してみます。

新バージョンに対応するプラグイン変換対応

公式手順に従うと、dify-apiコンテナに対して作業を行います。

まずは、dify-apiコンテナのIDを特定します。

# docker ps |grep docker-api-1
58ceaf508be1   langgenius/dify-api:1.3.1                   "/bin/bash /entrypoi…"   15 minutes ago   Up 15 minutes             5001/tcp

この環境だと「58ceaf508be1」がコンテナIDだと分かるので、コンテナにログインして、以下のコマンドを実行します。

# docker exec -it 58ceaf508be1 bash ※コンテナにログイン

# root@58ceaf508be1:/app/api# poetry run flask extract-plugins --workers=20
bash: poetry: command not found

あれ?poetryコマンドがない?調べてみるとどこかのバージョンからはデフォルトでpoetryが入っているようです。

とりあえず手動で入れみます。

root@58ceaf508be1:/app/api# pip install poetry

poetryがインストールできたら、再度実行してみます。

root@58ceaf508be1:/app/api# poetry run flask extract-plugins --workers=20
root@58ceaf508be1:/app/api# poetry run flask install-plugins --workers=2
root@58ceaf508be1:/app/api# poetry run flask migrate-data-for-plugin

最後のコマンド実行して、

Migrate [tool_builtin_providers] data for plugin completed, total: 0
Migrate data for plugin completed.

といった結果が表示されればOKです。ただ、今回はプラグインを使っていないので結果も0だったようです。

バージョンアップされた環境を再度確認する

再度ブラウザに戻って、先程のモデルプロバイダー設定が戻ったかを確認してみたところ、設定が戻っていました。

dify-update-09

その他アプリの動作確認もしてみて、問題ないことを確認でき、バージョンアップが完了となります。

まとめ

今回はセルフDify環境のDifyバージョンアップを行ってみました。

Difyのバージョンアップに関する情報は公式にはあるものの、他にはあまりないため、何かのお役に立てれば幸いです。