CentOS 7 部署Dify

1,300 阅读2分钟

Dify 它是一个开源 LLM 应用开发平台。拥有直观的界面结合了 AI 工作流、RAG 管道、代理功能、模型管理、可观察性功能等,可以快速从原型开发到生产。

采用Docker方式部署

image.png

因为部署了宝塔,所以直接在宝塔里面安装了docker。

image.png

安装 Dify 之前,请确保你的机器已满足最低安装要求:CPU>2 Core RAM>=4GB

clone Dify仓库到本地环境

git clone https://github.com/langgenius/dify.git

image.png

cd /home/dify/docker

cp .env.example .env 复制环境配置文件,然后vi .env修改配置文件,修改里面相关服务的端口号和知识库上传文件限制等配置项。这里根据自己网络环境进行了修改。

docker-compose up -d

-d 参数表示“detached”模式,即以分离模式运行,服务会在后台运行,不会占用当前终端。

结果报错,明显是网络问题,最便捷的就是更新成国内的源

image.png

这里采用毫秒镜像docker源,直接复制脚本,粘贴运行即可,方便快捷。

image.png

但是执行docker-compose up -d 后依然提示网络错误,感觉和更新源无关,最后在毫秒镜像的FAQ里面看到:

image.png

使用 docker --version 查看版本还是1.31.1版本,于是进行了版本升级: 升级过程请参见这篇文章

升级后的版本:

image.png

启动dify容器:

image.png

很明显80端口被占用了。 查看.env文件,搜索80:

image.png

把这个端口号改成自己期望的端口后启动容器:

image.png

检查是否所有容器都正常运行使用docker compose ps命令.

由于是自己测试,添加防火墙规则,只允许自己办公室IP访问:

firewall-cmd --permanent --zone=public --add-rich-rule='rule family=ipv4 source address=xxx.xxx.xxx.xxx/32 port protocol="tcp" port="xxxx" accept'

PS:后期发现docker映射的端口启动的时候直接通过iptables添加了防火墙规则,所以docker的端口无法通过firewall-cmd 来进行管理,由于我的服务器在DMZ区,前面有物理防火墙,所以偷懒直接在物理防火墙上面做了安全策略

oK:访问服务器IP和你配置的端口:

image.png