Difyのアップデートメモ
私のDifyの構築方法だとアップデートでやることがあるのでそのメモです。
通常の方法でインストールしている場合は新しいコードを取得した後起動すればいけるはず?
データの永続化は確認すること。
一応,初期からされてはいるはず・・・
アップデート方法
Difyを止める
まず、Difyの停止を行います。
cd /opt/dify/docker
sudo docker compose down
バックアップ作成(必要なら)
sudo cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
sudo tar -cvf volumes-$(date +%s).tgz volumes
新しいコードを取得する
変更内容をstashしてpull
中身もだいぶ変更しているのでpopで変更を戻します
sudo git stash
sudo git pull origin main
sudo git stash pop
私の入れ方だとnginxやcertbotは再度つぶす必要あり(削除でも別に可)
sudo vi docker-compose.yaml
マーカーも不要なので<<<<<<<、=======、>>>>>>>は削除
起動する
念のためDify側でVersionは確認してください。
sudo docker compose up -d
Gitエラーが出てアップデートできない場合
競合してアップデートができない場合
上のやり方だと以下のようになる場合があります
sudo git pull origin main
sudo git stash pop
docker/docker-compose.yaml: needs merge
error: Pulling is not possible because you have unmerged files.
hint: Fix them up in the work tree, and then use 'git add/rm <file>'
hint: as appropriate to mark resolution and make a commit.
fatal: Exiting because of an unresolved conflict.
docker/docker-compose.yaml: needs merge
The stash entry is kept in case you need it again.
こうなると一度きれいに reset --hard で最新の状態にしてから、もしポート番号などの設定が必要なら、手動で docker-compose.yaml を編集し直すのが最も確実です。
バックアップはしているものとします。
1. 最新情報を取得
sudo git fetch origin
2. 強制的に公式最新版に合わせる
sudo git reset --hard origin/main
3. イメージを更新して起動
sudo docker compose pull
4.yaml変更後に起動する
私のやり方ではNginxやCertbotを無効化してるのでその後に起動したほうがいいです。
sudo docker compose up -d
versionを指定する(ダウングレードする)
2時間前に出たVersionにしたら動かないことがありました。
バックアップはしているものとします。
sudo git fetch --tags
sudo git reset --hard 1.11.0
sudo docker compose pull
yaml変更後に起動
sudo docker compose up -d
v1.11.0に移行時に発生したエラー(例)
以下のエラーが発生
[PANIC]failed to init dify plugin db: failed to connect to `host=db user=postgres database=postgres`: hostname resolving error (lookup db on 127.0.0.11:53: server misbehaving)
公式はdocker compose --profile postgresql up -dを実行で解決すると書いていたが解決されなかったです。
envファイルが新バージョンで大きく変わったことが原因だったみたいです。
私の場合は以下のようにenvファイル再作成する方が早かったですね。
sudo mv .env .env.bak
sudo cp .env.example .env
設定を戻したあとに起動
sudo docker compose up -d
問題なく起動しましたね・・・
何かあればenvも疑った方がよさそうですね。
別にdbの部分の差を探してそこだけ変更でもいいと思います。