Dify 源码升级指南

目录

前言

[1. 备份](#1. 备份)

[1.1 备份全部文件](#1.1 备份全部文件)

[1.2 备份特定文件](#1.2 备份特定文件)

[1.2.1 备份自定义的docker-compose.yaml文件(可选)](#1.2.1 备份自定义的docker-compose.yaml文件(可选))

[1.2.2 备份.env文件](#1.2.2 备份.env文件)

[1.2.3 备份volumes数据文件](#1.2.3 备份volumes数据文件)

[2. 升级](#2. 升级)

[2.1 从主分支获取最新代码](#2.1 从主分支获取最新代码)

[2.2 代码及文件替换](#2.2 代码及文件替换)

[2.3 启动服务](#2.3 启动服务)

[2.4 报错解决](#2.4 报错解决)


前言

在一些情况下我们需要通过升级dify来修复一些漏洞,或者使用一些新功能,本文将讲解如何对dify进行升级。


1. 备份

备份是必不可少的步骤,可以保证我们后面就算操作失误也能进行回滚。可以选择备份全部文件,也可以选择对特定的几个文件进行备份。

先停止服务,需进入到旧版本docker目录下:

bash 复制代码
cd /dify/docker

执行下述命令:

bash 复制代码
docker compose down

1.1 备份全部文件

执行下述命令进行备份。

bash 复制代码
cp -r dify dify_bk

1.2 备份特定文件

我们可以只备份有修改的哪些文件。一般只需备份下述三类文件即可。

1.2.1 备份自定义的docker-compose.yaml文件(可选)

bash 复制代码
cd /dify/docker

cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak

1.2.2 备份.env文件

bash 复制代码
cp .env .env.1.7.1

1.2.3 备份volumes数据文件

volumes文件夹保存的是你在Dify创建的知识库和应用等所有文件。

bash 复制代码
tar -cvf volumes-$(date +%s).tgz volumes

2. 升级

2.1 从主分支获取最新代码

bash 复制代码
git checkout main
git pull origin main

如果git拉取速度慢,可以直接从官网下载压缩包。

2.2 代码及文件替换

最新版本代码解压并替换旧版文件。

将原来的数据"volumes"文件夹和配置文件 .env 复制到新安装包中。.env文件也可以自己重新进行配置。

解压volumes.tgz文件:

bash 复制代码
# 解压未压缩的归档
tar -xvf volumes-1696156800.tgz

# 或解压到指定目录
tar -xvf volumes-1696156800.tgz -C /目标路径/

2.3 启动服务

bash 复制代码
docker compose up -d

2.4 报错解决

2025/11/26 11:37:57 /app/internal/db/pg/pg.go:30

error failed to initialize database, got error failed to connect to host=db_postgres user=postgres database=dify_plugin: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)

2025/11/26 11:37:57 /app/internal/db/pg/pg.go:34

error failed to initialize database, got error failed to connect to host=db_postgres user=postgres database=postgres: hostname > resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)

2025/11/26 11:37:57 init.go:99: PANICfailed to init dify plugin db: failed to connect to host=db_postgres user=postgres database=postgres: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)

panic: PANICfailed to init dify plugin db: failed to connect to host=db_postgres user=postgres database=postgres: hostname resolving error (lookup db_postgres on 127.0.0.11:53: server misbehaving)
如果遇到数据库连接错误host=db_postgres user=postgres database=dify_plugin:

请用docker compose --profile postgresql up -d启动。

bash 复制代码
docker compose --profile postgresql up -d

相关推荐
生活爱好者!13 小时前
哇!影视新玩法!docker部署NEOWATCH NAS
运维·docker·容器
cpolar技术支持17 小时前
Docker 容器启动失败怎么查?端口、日志、权限与网络排障完整教程
linux·docker·容器·cpolar·网络排障
一技安身19 小时前
【大模型】Win11 部署 DeepSeek+ RAGFlow0.27.2 (Ollama方案,断网可用)
docker·ai·语言模型
新时代牛马19 小时前
docker run 起不来?从dockerd、containerd 到runc 一条线讲透
运维·docker·容器
JavaPub-rodert19 小时前
Docker 安装 MySQL 完整教程:从零部署数据库,到生产环境持久化配置
数据库·mysql·docker
努力努力再努力wz21 小时前
【Docker 入门系列】:从 Namespace、CGroup 到 LXC:理解容器运行时、rootfs 与 LXC 实战
运维·docker·容器
JavaPub-rodert1 天前
Docker 多阶段构建:为什么生产环境镜像可以小 90%
运维·docker·容器
PC2005-cloud1 天前
Qdrant 连接失败排查:localhost 解析到 __1,而 Docker 只绑了 IPv4
运维·docker·容器
喵喵爱自由1 天前
Deepseek Harness镜像离线部署
docker·ai·语言模型
一技安身1 天前
【信创】Ollama 手动提取 deepseek-r1:1.5b模型迁移到内网机器
服务器·docker·语言模型