如今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
?文件中,并更新已更改的任何值。