Dify 1.0+版本迁移到离线环境

Dify 1.0+版本迁移到离线环境

Dify升级到1.0+版本后,使用了插件模块扩展功能,但是插件模型在迁移时,无法通过直接拷贝文件方式实现,在网上搜索了很多方法,例如可以使用dify-plugin-repackaging工具将插件重新打包成offline安装版本,后者在离线环境配置离线pip服务器,然后安装插件,这两种方法都可行,但是在某些系统中存在因文件名过长而安装失败的问题。笔者反复测试了多种方法,最终成功摸索出一种迁移方法,实测可以将1.4.0版本dify迁移到离线环境,并保留安装的插件。

一、在联网环境中配置dify开发环境

联网环境配置dify环境比较简单,不详细阐述了。

1.下载dify项目

Dify下载可以通过github或者gitee,github要看网络状态,使用gitee,直接使用git命令。

git clone dify: 从https://github.com/langgenius/dify同步

2.运行dify

使用powershell,进入dify项目的docker目录,把“.env.example”文件复制一份,改名为“.env”,运行“docker compose up -d”命令即可运行dify。前提是安装了docker平台。

3.安装插件

Dify的插件系统安装时需要python环境使用pip安装一堆库,在国内安装时经常发现安装不上,这时候配置一下pip国内源即可解决。具体如下:

打开docker目录下“docker-compose.yaml”文件,找到plugin_daemon镜像中的PIP_MIRROR_URL配置项,修改为国内源,例如“https://pypi.tuna.tsinghua.edu.cn/simple”,当然也可以配置为国内其他源。

修改完成后,在docker目录下,运行“docker compose down”和“docker compose up -d”,重启一下dify,即可正常安装插件,然后就可以根据自己的需求安装dify插件。

二、将dify迁移至离线环境

1. 打包dify本地文件

Dify的本地运行文件就是docker目录下的所有文件,但是安装插件后,会发现,无法把docker目录直接打包迁移,主要原因就是volumes子目录中的plugin_daemon文件夹无法直接打包,因此只能取巧迁移。

首先把docker目录下除volumes目录之外的所有文件和文件夹打包成docker.zip压缩文件,然后把volumes中除plugin_daemon文件外的其他文件夹打包成volumes.zip压缩文件。

2. 打包插件

docker目录,volumes子目录中的plugin_daemon文件夹无法直接打包,打开后主要包含assets、cwd、plugin、plugin_packages四个文件夹,其实是docker-plugin_daemon-1容器中/app/storage目录的映射,因此可以进入容器中进行打包,具体:

首先通过“docker exec –it docker-plugin_daemon-1 /bin/bash”进入容器,然后执行“cd /app/storage”进入目录,然后执行“tar –cvf pack.tar assets、cwd、plugin、plugin_packages”,将assets、cwd、plugin、plugin_packages四个文件夹打包成pack.tar压缩文件。由于映射在同一目录,可以发现docker目录的volumes文件夹中plugin_daemon文件夹中多了一个pack.tar文件,就是刚刚打包的压缩文件。

3. 恢复dify本地文件

把1中打包的docker.zip和volumes.zip拷贝到离线环境中,docker.zip解压为docker文件夹,volumes.zip解压为volumes文件夹,并拷贝到docker文件夹中。

打开powershell,在docker目录下执行“docker compose up -d”命令运行dify,这时候volumes文件夹中会生成一个plugin_daemon文件夹。

4. 恢复插件

把2中打包的pack.tar文件拷贝到离线环境docker目录下的volumes文件夹中的plugin_daemon文件夹中,如果没有plugin_daemon文件夹,自己建一个也可以。

首先通过“docker exec –it docker-plugin_daemon-1 /bin/bash”进入容器,然后执行“cd /app/storage”进入目录,然后执行“tar –xvf pack.tar”,将assets、cwd、plugin、plugin_packages四个文件夹解压出来(解压时间比较长不用处理)。由于映射在同一目录,可以发现离线环境的docker目录的volumes文件夹中plugin_daemon文件夹中多了assets、cwd、plugin、plugin_packages四个文件夹。

5. 重启dify

执行完4后登陆dify会发现安装的插件已经可以在插件页面看到,但是可能无法正常使用。此时打开docker目录下“docker-compose.yaml”文件,找到plugin_daemon镜像中S3开头的三个配置项,注释掉后,再通过“docker compose down”和“docker compose up -d”,重启一下dify,即可正常使用插件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值