最新 Dify 1.14.0+ 内网离线插件打包、部署完整踩坑方案(解决 uv.lock 依赖校验失败)

文章目录

一、背景说明

我真的服了,搞了好几天,差点崩溃。终于解决了较新版本Dify的离线插件打包和安装的问题。

早期打包脚本(即网上90%的资料都说的打包插件Dify-plugin-repacking)产出的离线插件包,在旧版 Dify 上可以正常安装使用。

但 Dify 新版本(应该是1.10.0之后),不知道为什么,官方引入了uv包管理器,新增了uv.lock锁严格冻结依赖校验机制,老方式打包出来的离线包直接安装会报错,无法正常使用。具体表现就是,依旧会联网搜索依赖,尽管该依赖早已经离线下载好。

经过多方面的搜索以及调研,终于在Github找到了解决办法,生成真正适配内网、不联网的离线插件包。

⚠️ 适用版本:Dify 1.10.0之后,私有化内网离线场景,无外网,无法在线拉取 Python 依赖

二、Dify 环境变量配置

打开 Dify 根目录下的 .env 文件,追加下面配置:

bash 复制代码
# ===== 离线插件专项配置 =====
# 跳过 uv.lock --frozen 严格校验,优先使用插件包内预先打包好的本地wheels离线解析依赖
PLUGIN_IGNORE_UV_LOCK=true
# 关闭插件签名校验,允许安装未上架官方市场、自己打包的私有插件包
FORCE_VERIFYING_SIGNATURE=false
# 插件包最大限制:500MB,适配MinerU、文档解析等依赖较多的重型插件
PLUGIN_MAX_PACKAGE_SIZE=524288000
# 配套Nginx上传限制,和上面插件大小保持一致,避免上传413 Request Entity Too Large
NGINX_CLIENT_MAX_BODY_SIZE=500M

重点坑点:docker compose restart 不会重新加载 .env 环境变量!

restart 只是重启容器,不会重新读取 env 文件,必须使用 --force-recreate 重建容器才能加载新变量

执行重建 plugin-daemon 命令:

bash 复制代码
docker compose up -d --force-recreate plugin_daemon

三、下载插件

提前去dify官方提供的插件市场下载所需插件:点击前往插件市场

下载好的插件后缀为 difypkg

四、离线重打包工具

该工具专门用来重新处理 difypkg 插件包,自动预下载所有依赖 whl,打包进插件内部,同时处理uv.lock锁,实现纯离线安装,部署时不再访问外网 pip 源

bash 复制代码
git clone https://github.com/kurokobo/dify-plugin-offline-packager.git

切换目录

bash 复制代码
cd dify-plugin-repackaging-python

同时给打包工具赋权

bash 复制代码
chmod 755 ./bin/dify-plugin-cli-0.6.1-linux-amd64

将需要打包的插件放入到difypkg目录下,执行命令打包。其中langgenius-agent_0.0.51.difypkg替换为需要打包的插件名称

bash 复制代码
docker compose run --rm packager --local "difypkg/langgenius-agent_0.0.51.difypkg"

等待打包,出现成功字样即可。生成的文件在difypkg目录下,以offline.difypkg结尾

在Dify页面上选择本地插件安装即可

相关推荐
静以修身zzz3 小时前
OpenStack对象存储-Swift、OpenStack编排管理-heat、OpenStack网络管理-neutron
linux·运维·服务器·架构·openstack·swift
七牛云行业应用3 小时前
DeepSeek Harness 插件架构 vs MCP:Cordis 的「Everything is a Plugin」到底解决什么
ai·github·ai编程
东鹏特饮3 小时前
本机状态监控页面html
运维·css·html·css3
Mr. zhihao3 小时前
Deep Agent 架构深度解析:主Agent与子Agent完整交互机制与核心参数作用
python·ai·langgraph·deepagent
l1m0_3 小时前
AI设计工具有哪些?Paico、Pixso AI、墨刀AI、Lovable、Codex怎么选
前端·人工智能·ai·设计·墨刀·codex·pixso
Gauss松鼠会3 小时前
GaussDB 整体架构解析
运维·服务器·网络·数据库·sql·架构·gaussdb
Gauss松鼠会4 小时前
GaussDB 中 gsql 与 DBeaver(JDBC)客户端工具查询时间不一致:原因、排查与处理
运维·服务器·数据库·sql·gaussdb·经验总结
谙弆悕博士4 小时前
debian快速换源
linux·运维·windows·debian·下载·换源·网络问题
.道阻且长.4 小时前
Linux基本开发工具:编译器gcc/g++
linux·运维·服务器·职场和发展