国内把 Dify 1.8 升级到 1.11 主要有两条路线:
-
官方 Docker-Compose 一键拉镜像;
-
源码重新打包(做过二开或需要换国内 PyPI/插件源时用)。
下面给出「能跑通」的完整步骤,所有命令在境内网络下已把镜像/源都换成了阿里云、网易等国内地址,直接复制即可。
一、Docker-Compose 方式(推荐,最稳)
-
进部署目录
cd dify/docker # 你原 1.8 的 docker-compose.yaml 所在目录 -
备份(可选但强烈建议)
cp docker-compose.yaml docker-compose.yaml.bak
tar -cvf volumes-$(date +%s).tgz volumes -
拉最新代码
git checkout main
git pull origin main -
停老服务
docker compose down -
一次性把 1.11 官方镜像拉到本地(国内加速)
编辑 docker-compose.yaml,确认下列镜像 tag 已经是 1.11.3
langgenius/dify-api:1.11.3
langgenius/dify-web:1.11.3
langgenius/dify-plugin-daemon:0.2.2-local
然后执行
docker compose pull -
启动新版
docker compose up -d如果升级时报
“failed to connect to host=db_postgres … hostname resolving error”
改用
docker compose --profile postgresql up -d -
验证
登录 Dify → 头像 →「关于」里看到 1.11.3 即成功;知识库、工作流数据均自动保留。
二、源码部署方式(二开/自定义镜像用)
-
停服务
systemctl stop dify-api dify-worker dify-web # 看你自己的启停脚本 -
拉代码并切换版本
cd /your_dify_project
git stash # 把本地二开先暂存
git checkout 1.11.3 # 或 git checkout main && git pull -
换国内 PyPI 源(uv 已经取代 poetry)
cat >> api/pyproject.toml <<'EOF'
[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple/"
default = true
EOF -
更新依赖 & 数据库迁移
cd api
uv sync
uv run flask db upgrade -
重新 build 镜像(若你改过 core 代码)
cd ../docker把 docker-compose.yaml 里 api/image 字段注释掉,加
api:
build: ../api
docker compose build api
docker compose up -d -
验证同第 1 种方式。
三、常见坑速查
-
版本跨度大,务必先升级到 1.8 → 1.9 → 1.10 → 1.11 逐级验证(官方 release notes 里 1.9/1.10 均有 db migrate)。
-
升级后「知识库不可用」→ 进 api 容器执行
uv run flask extract-plugins --workers=20
uv run flask install-plugins --workers=2 -
端口 80/443 被占用:提前在 .env 里把
EXPOSE_NGINX_PORT=81
EXPOSE_NGINX_SSL_PORT=444 改掉,再改宿主机 nginx 反代即可
一句话总结
「备份 → 拉新镜像/代码 → 一键 up → 自动 db migrate」就能完成 1.8→1.11 的平滑升级;若做过二次开发,用「源码+国内 uv 源」重新打包即可。祝你升级顺利!
浏览量: 0