Dify 插件离线打包完整指南(Windows + Docker 版)

问题背景

将 Dify 从外网迁移到内网后,发现一个令人困惑的问题:明明在外网下载好的插件(.difypkg 文件),导入内网 Dify 后却"消失"了,刷新页面就找不到。

根本原因:Dify v1.x 的插件机制发生了重大变化。插件不再是一个独立的 Docker 镜像,而是一个 Python 应用。安装时需要联网从 PyPI 下载依赖包。内网环境无法访问公网,依赖安装失败,插件自然无法加载。

解决方案:在外网将插件及其所有 Python 依赖打包成一个完整的离线安装包。

🎯 最终成功的命令

直接复制以下命令到 PowerShell 执行(确保 Docker Desktop 已启动):

bash 复制代码
docker run --rm -it -v "${PWD}:/app" -e DEBIAN_FRONTEND=noninteractive ubuntu:24.04 bash -c "cd /app && apt-get update && apt-get install -y unzip python3 python3-pip tzdata && ln -sf /usr/bin/python3 /usr/bin/python && chmod +x plugin_repackaging.sh && ./plugin_repackaging.sh local ./langgenius-openai_api_compatible_0.0.42.difypkg"

执行成功后输出示例:

🧩 准备工作

1. 环境要求

项目 要求
操作系统 Windows 10/11(专业版/企业版,或家庭版 + WSL2)
Docker Docker Desktop for Windows(已启动)
网络 需要能访问外网(下载镜像和 Python 依赖)

2. 下载打包工具(推荐使用增强版)

理由:原版没成功(对 Python 版本兼容性更好):

bash 复制代码
git clone https://github.com/xjl456852/dify-plugin-repackaging-plus.git
cd dify-plugin-repackaging-plus

3. 准备插件文件

从 Dify 插件市场下载需要打包的插件(如 langgenius-openai_api_compatible_0.0.42.difypkg),放入上述目录。

🔧 命令参数详解

参数 作用
docker run --rm 运行容器,执行完毕后自动删除
-it 交互式终端,可以看到打包过程
-v "${PWD}:/app" 将当前目录挂载到容器的 /app 目录
-e DEBIAN_FRONTEND=noninteractive 关键:禁止交互式提示(解决 tzdata 时区选择问题)
ubuntu:24.04 使用 Ubuntu 24.04(自带 Python 3.12,无需额外配置)

🐛 踩坑记录与解决方案

坑1:路径格式问题

错误 :unzip: cannot find or open .\xxx.difypkg

原因 :在 Git Bash 中使用了 Windows 风格路径 .\

解决 :使用 Unix 风格路径 ./

坑2:Python 版本不兼容

错误 :error: metadata-generation-failed 和 jiter

原因:本地 Python 3.14 太新,某些包没有兼容版本

解决:使用 Docker 容器中的 Python 3.12(Ubuntu 24.04)

坑3:Ubuntu 22.04 找不到 python3.12

错误 :E: Unable to locate package python3.12

原因:Ubuntu 22.04 默认源没有 Python 3.12

解决:改用 Ubuntu 24.04(自带 Python 3.12)

📦 打包前后对比

对比项 原文件 离线包
文件名 xxx.difypkg xxx-offline.difypkg
大小 ~50 KB ~50 MB
内容 仅插件代码 代码 + 所有 Python 依赖
安装方式 需要联网 直接安装

🖥️ 内网安装步骤

1. 修改 Dify 配置

在 Dify 部署目录 dify/docker/.env 中添加:

bash 复制代码
# 允许安装未签名的本地插件(必须)
FORCE_VERIFYING_SIGNATURE=false

# 调整上传文件大小限制(离线包可能较大)
PLUGIN_MAX_PACKAGE_SIZE=524288000
NGINX_CLIENT_MAX_BODY_SIZE=500M

2. 重启 Dify 使配置生效

bash 复制代码
cd /path/to/dify/docker
docker compose down
docker compose up -d

3. 安装离线插件

  1. 登录 Dify 管理界面

  2. 点击右上角头像 → 「插件」 → 「管理」

  3. 点击 「安装插件」 → 「本地安装」

  4. 选择打包好的 xxx-offline.difypkg 文件

  5. 等待安装完成

4. 验证安装

进入 「设置」 → 「模型供应商」,应该能看到新安装的插件选项。

💡 常见问题 FAQ

Q1:打包后的文件能直接改名吗?

A :可以,但建议保留 -offline 标识,方便区分。

Q2:内网安装时提示"插件签名验证失败"?

A :检查 .env 中是否设置了 FORCE_VERIFYING_SIGNATURE=false。

Q3:打包时提示 Docker 连接失败?

A :确保 Docker Desktop 已启动,执行 docker ps 验证。

🔗 参考资料

如果这篇文章对你有帮助,欢迎点赞收藏!

相关推荐
cmdch20172 小时前
我的ai之旅——ai短剧绯面:无衣(deepseek+comfy ui)
ai
岁寒良木2 小时前
麒麟 V10 (x86_64) 离线/联网部署 Docker 26.1.4 与 MaxKB v2.10 LTS 实战指南
python·docker·kylin
枝上棉蛮3 小时前
AI生成3D模型工具TOP5:造形家、Meshy、Tripo3D、Luma AI、混元3D怎么选
ai·ai三维建模工具·场地模型·ai生成3d模型·3d资产·建筑模型·游戏角色
Ven%3 小时前
在魔搭 Notebook 容器里跑 Qwen Code:从零配置到省魔粒的完整实践
人工智能·python·ai·ai编程·modelscope
xzlAwin5 小时前
Win10 安装 Ollama 本地AI
ai·ollama
MicrosoftReactor5 小时前
技术速递|在 GitHub Copilot App 中渲染超大型拉取请求
ai·github·copilot·虚拟化·拉取请求
涵美女程序猿5 小时前
商品图工作流怎么搭?Lingko AI 核对运动相机防水壳的版本与接口
ai
前沿在线6 小时前
黄仁勋 GTC 柏林演讲完整整理:从 AI 工厂到机器人,英伟达把下一步讲透了 | 前沿在线
人工智能·ai·大模型
snow@li6 小时前
Qoder全景梳理:Qoder软件、智能体、底层模型三者边界辨析
ai
正经教主6 小时前
【FDE系列】阶段2:Day 43(UP详细版):Docker Compose — 多容器一键编排
运维·docker·容器