如今Agent在互联网上大行其道,网上吵得火热,各个企业也都想搭建自己的Agent。COZE的开源还有最近新出的JoyAgent也都让大家跃跃欲试,今天为大家带来的是Dify的部署方式,相比其他工作流平台,Dify对于整个Agent制作的流程和搭建完整性方面,具有一定的优势,也有大量的企业实战经验。当然各家的部署流程也都大同小异,本文就以Dify为例讲解整个搭建流程。希望能促进AI真正的为企业所用,而不是仅仅在2B业务使用时的玩具。
Dify最低的配置要求是2核4G,发现最近阿里云有免费的试用,便采用了阿里云4核8G的云服务器,CentOS系统,使用Docker部署Dify的全流程。在阿里云的选配下,是可以默认部署好Docker的,鉴于并不费劲,而且很多情况需要手工部署,为了给大家做个示例,这块选择手工部署Docker。
Docker部署
在 Linux 平台部署 Docker 前,必须首先明确发行版及其对应的包管理器:Debian 系(Ubuntu、Mint、Kali)采用 APT,而 Red Hat 系(CentOS 7、RHEL 7)则依赖 yum,因而本文使用yum进行安装。
1、先检查是否是干净的docker环境
将原有的docker移除干净:
sudo yum remove docker
这里由于我是干净的服务器环境,原来没有部署,可以直接进入到下一步的安装。
2、安装yum中的依赖包:
sudo yum install -y yum-utils
如果使用 sudo apt-get update 报错sudo: apt-get:找不到命令,可以尝试选择yum包管理器来安装Docker。
3、添加Docker 仓库
本文采用的阿里云服务器,就直接采用了阿里云的镜像来添加比较方便。当然其他国内服务器也可以采用阿里云的镜像:
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
4、安装Docker
添加好镜像后,便可以进行Docker的安装,在安装过程中会有两次下载安装确认,直接y就可以。
sudo yum install docker-ce docker-ce-cli containerd.io
5、完成安装
安装完成后,直接使用命令运行:
sudo systemctl enable --now docker
6、安装Docker Compose
根据Dify的官方文档,Dify是基于Docker Compose进行安装,因而需要安装Docker Compose:
sudo yum install docker-compose-plugin
Dify部署
1、克隆 Dify 源代码
直接使用官方git命令克隆:
git clone https://github.com/langgenius/dify.git
但由于国内拉取github仓库的速度过慢,这边在gitee上同步了仓库,然后进行拉取,大家也可以自行建一个gitee同步仓库进行拉取。
git clone https://gitee.com/aszhangwendi/dify.git
亲测国内的拉取速度还是很快的。
2、启动 Dify
(1)进入 Dify 源代码的 Docker 目录
cd dify/docker
(2)复制环境配置文件
cp .env.example .env
(3)启动 Docker 容器
这块根据系统上的 Docker Compose 版本,选择合适的命令来启动容器。不同版本的启动方式略有区别。我这边是v2.27.1版本,因而命令为:
docker compose up -d
如果是V1版本的,则使用命令:
docker-compose up -d
这块要注意的是,有可能会出现Docker镜像拉取出错的问题,这块解决方法:修改/etc/docker/daemon.json文件
vim /etc/docker/daemon.json
将文件内容改成:
{
"registry-mirrors": [
"https://docker.m.daocloud.io",
"https://docker.imgdb.de",
"https://docker-0.unsee.tech",
"https://docker.hlmirror.com",
"https://docker.1ms.run",
"https://func.ink",
"https://lispy.org",
"https://docker.xiaogenban1993.com"
]
}
然后进行拉取,即可:
检查是否所有容器都正常运行:
docker compose ps
在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web
,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox
entrypoi…" worker_beat 2 hours ago Up 2 hours 5001/tcp
至此,便已经安装好Dify,可以先前往管理员初始化页面设置设置管理员账户:
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docker-api-1 langgenius/dify-api:1.7.2 "/bin/bash /entrypoi…" api 2 hours ago Up 2 hours 5001/tcp
docker-db-1 postgres:15-alpine "docker-entrypoint.s…" db 2 hours ago Up 2 hours (healthy) 5432/tcp
docker-nginx-1 nginx:latest "sh -c 'cp /docker-e…" nginx 2 hours ago Up 2 hours 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp
docker-plugin_daemon-1 langgenius/dify-plugin-daemon:0.2.0-local "/bin/bash -c /app/e…" plugin_daemon 2 hours ago Up 2 hours 0.0.0.0:5003->5003/tcp, :::5003->5003/tcp
docker-redis-1 redis:6-alpine "docker-entrypoint.s…" redis 2 hours ago Up 2 hours (healthy) 6379/tcp
docker-sandbox-1 langgenius/dify-sandbox:0.2.12 "/main" sandbox 2 hours ago Up 2 hours (healthy)
docker-ssrf_proxy-1 ubuntu/squid:latest "sh -c 'cp /docker-e…" ssrf_proxy 2 hours ago Up 2 hours 3128/tcp
docker-weaviate-1 semitechnologies/weaviate:1.19.0 "/bin/weaviate --hos…" weaviate 2 hours ago Up 2 hours
docker-web-1 langgenius/dify-web:1.7.2 "/bin/sh ./entrypoin…" web 2 hours ago Up 2 hours 3000/tcp
docker-worker-1 langgenius/dify-api:1.7.2 "/bin/bash /entrypoi…" worker 2 hours ago Up 2 hours 5001/tcp
docker-worker_beat-1 langgenius/dify-api:1.7.2 "/bin/bash /entrypoi…" worker_beat 2 hours ago Up 2 hours 5001/tcp
# 本地环境
http://localhost/install
# 服务器环境
http://your_server_ip/install
通过浏览器进入到Dify页面,进行安装
设置好管理员的账号密码,然后进入到登录页面登录:
至此,我们就完成了Dify的部署安装。
Dify更新
进入 dify 源代码的 docker 目录,按顺序执行以下命令:
cd dify/docker
docker compose down
git pull origin main
docker compose pull
docker compose up -d
要注意:同步环境变量配置
如果
.env.example
文件有更新,请务必同步修改你本地的.env
文件。检查
.env
文件中的所有配置项,确保它们与你的实际运行环境相匹配。你可能需要将.env.example
中的新变量添加到.env
文件中,并更新已更改的任何值。