官方无修改版本升级方式

没有修改过容器里面任何内容的,使用官方版本一键安装的话,升级会非常轻松,一键备份后一键升级即可,

如果你有以下任意一项则这个位置的教程不适合你,请往下面看,跳过这个位置

  • 改过env

  • 改过env.example

  • 改过docker-compose-template.yaml

Docker Compose 部署

  1. 备份配置文件(可选)

cd docker
cp docker-compose.yaml docker-compose.yaml.$(date +%s).bak
  1. 拉取最新代码

git checkout main
git pull origin main
  1. 停服操作(请在docker目录执行)

docker compose down
  1. 数据备份

tar -cvf volumes-$(date +%s).tgz volumes
  1. 升级服务

docker compose up -d

源码部署

  1. 停止所有服务(API、Worker、Web前端)

  2. 获取指定版本代码

git checkout 1.0.1
  1. 更新依赖

cd api
poetry install
  1. 执行数据库迁移

poetry run flask db upgrade
  1. 重启所有服务(API、Worker、Web前端)

说明:升级前建议做好全量备份,生产环境推荐在低峰时段操作。使用源码部署时,需注意Python依赖版本可能变化的情况。

你使用了我的方案该如何升级

https://www.5ee.net/archives/9kfPaSH7

升级方式其实和重装区别不大,docker升级无非就是镜像的版本号,和新增的环境变量什么的

唯一的重要的把数据无损的迁移过来,但并不是所有版本都支持无损迁移,跨大版本升级一般是会有问题的,小版本一般没什么问题

首先是备份

备份是必须的!备份是必须的!备份是必须的!

由于使用的是1panel,备份只需要打开面板,打开路径,将需要备份的文件 打包一下即可(如果你插件装的多的话,文件夹是非常大的,需要多等待一会,我这边是3G多)

  • 系统-文件-/opt/1panel/docker/compose/dify1.0.0/dify-main/docker

  • 选中需要压缩的文件-一键压缩

  • 下面两个个文件最好单独复制一份,因为主要改的还是这两个文件

    • docker-compose-template.yaml

    • .env.example

然后拉取整个项目

我的本地服务器无法访问github,我使用下载手动上传

  • 上传-解压缩-覆盖

修改.env.example

首先是使用vscode 代码对比功能,上一个版本的代码和现在这个版本的代码做一下对比
主要位置是第四处第五处,需要新增一下到你之前的.env.example并复制一份.env即可

第一处不同:这个地方是Oracle存储

第二处不同:Milvus向量化数据库

第三处不同:pgvector 向量化数据库

第四处不同:循环次数和最大工具数量,这地方需要新增

# Maximum loop count in the workflow
LOOP_NODE_MAX_COUNT=100

# The maximum number of tools that can be used in the agent.
MAX_TOOLS_NUM=10


第五处不同:新增了插件方面的超时时间,和国内镜像地址,这地方需要新增,是很重要的


PLUGIN_PYTHON_ENV_INIT_TIMEOUT=120
PLUGIN_MAX_EXECUTION_TIMEOUT=600
# PIP_MIRROR_URL=https://pypi.tuna.tsinghua.edu.cn/simple
PIP_MIRROR_URL=


修改docker-compose-template.yaml

第一处不同:dify-api 容器的版本号需要更新一下

第二处不同:dify-web 容器的版本号和新增两条变量 需要修改

第三处不同:postgres 数据库端口映射,不需要,我没用这个数据库,我用的是1panel之前装过的

第四处不同:插件版本号和环境变量 需要修改

第五处不同:pgvector 向量化数据库,不用修改,我没用

执行命令即可自动生成

  • ./generate_docker_compose

    • cp .env.example .env 复制环境变量

    • docker compose down 关闭容器

    • docker compose up -d 启动容器

更新了几个容器的版本,它会重新根据新版本pull