Dify平台离线部署与常见问题解决
Dify离线部署
联网环境+直接部署
Dify的离线部署有Docker部署和源码部署两种方式,比较推荐Docker部署,方便维护也不容易搞崩,简单拉取一下镜像就可以。这里主要介绍Docker的部署方法。
使用Docker Compose部署:Docker 19.03 或更高版本、Docker Compose 1.25.1或更高版本
安装Dify之前,需要确保你的机器已满足最低安装要求:CPU>2 Core RAM >= 4GB
首先,克隆源码到本地。
1 | git clone https://github.com/langgenius/dify.git |
可以获得Dify的源码结构:
1 | ├── .devcontainer/ # 开发容器配置 |
接着可以就可以启动Dify:
- 进入docker源码目录
1 | cd docker |
- 修改
.env环境变量配置文件
1 | cp .env.example .env |
- 使用
docker-compose启动Dify
1 | docker-compose up -d |
如图正常启动后,使用浏览器访问localhost即可访问Dify,如图就是设置管理员账户的账号密
码,注册登录之后即可正常使用
离线环境部署
适用于部署主机处于特定专网和内网环境下,需要提前获取部署Dify所需要的所有镜像和Dify项目代码目录。
方法一:从联网环境下pulling好之后打包拷贝进离线环境
1 | mkdir docker_images |
方法二:提前下载好所有镜像包和docker-compose文件
注意将以下文件传输到离线服务器:
Dify项目代码目录。docker_images目录(包含所有.tar或.tar.gz文件)。
拷贝到离线环境之后,使用docker load加载所有镜像:
1 | cd docker_images |
全部加载完成后,进入项目目录,配置环境变量并启动Dify:
1 | cd /dify/docker |
修改部署的端口
使用以上方法部署的Dify,默认的端口是80,可以通过修改.env和docker-compose.yaml调整Dify-web服务的端口。
注意防火墙安全组规则的放行。
离线安装插件
在离线的环境下,Dify是无法访问官方的插件仓库的,需要我们手动在联网环境打包好插件拷贝到离线环境中。
使用以下命令来下载Dify插件打包工具
1 | git clone https://github.com/junjiem/dify-plugin-repackaging.git |
这里以打包ollama 0.0.3插件为例:
1 | ./plugin_repackaging.sh market langgenius ollama 0.0.3 |
如果已有 .difypkg 文件,也可使用 local 模式打包
1 | ./plugin_repackaging.sh local ./xxx.difypkg |
将打包好的插件拷贝到离线环境后,需要修改.env配置文件来保证插件正常安装:
1 | FORCE_VERIFYING_SIGNATURE=false # Dify 平台允许安装所有未在 Dify Marketplace 上架(审核)的插件 |
接着重启Dify
1 | docker compose down docker compose up -d |
重启后进入Dify应用里,点击右上角的插件,安装插件处选择本地插件,导入等待安装完成即可。
Dify部署问题处理
docker_api_1等服务一直处于重启状态
在docker-compose up -d之后,查看容器状态时一直有几个容器在重启:
1 | docker_api_1 /bin/bash /entrypoint.sh Restarting |
我们可以先查看相关容器日志
1 | docker logs docker_api_1 #若没有设置容器名,把容器名改为容器ID前四位 |
发现是权限问题:
1 | OpenBLAS blas_thread_init: pthread_create failed for thread 2 of 4: Operation not permitted |
这种情况需要我们给权限缺失的容器添加特权运行配置
在docker-compose.yaml中找到并添加:
1 | api: |
接着重新启动Dify,就可以正常运行。
本地安装模型时失败,提示init environment for plugin langgenius/openai:0.0.26 failed too many times you should consider the package is corrupted or your network is unstable
这个报错与提供插件服务的dockerdocker_plugin_daemon有关,查看容器日志:
1 | docker logs plugin_daemon #若没有设置容器名,把容器名改为容器ID前四位 |
1 | [ERROR]init environment failed: failed to install dependencies: exit status 2, output: error: Failed to unzip wheel: openai-1.64.0-py3-none-any.whl |
还是权限问题,给docker_plugin_daemon容器添加特权配置:
1 | plugin_daemon: |




