開源 LLM 應用開發平臺 Dify 全棧部署指南(Docker Compose 方案)
一、部署環境要求與前置檢查
1.1 硬件最低配置
組件 | 要求 |
---|---|
CPU | 雙核及以上 |
內存 | 4GB 及以上 |
磁盤空間 | 20GB 可用空間 |
1.2 系統兼容性驗證
- ? 官方支持系統:
- Ubuntu 20.04/22.04 LTS
- Debian 11/12
- ? 注意事項:
- 推薦使用純凈系統環境
- 避免與其他占用 80/443 端口的服務沖突
1.3 安裝驗證
部署成功查看:
瀏覽器訪問:
二、容器化部署全流程
2.1 容器運行時安裝
Docker 引擎部署
# 卸載舊版本(全新安裝可跳過)
sudo apt-get remove docker docker-engine docker.io containerd runc# 安裝依賴工具集
sudo apt-get update && sudo apt-get install -y \ca-certificates \curl \gnupg \lsb-release# 添加官方 GPG 密鑰
sudo mkdir -m 0755 -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg# 設置穩定版倉庫
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null# 安裝 Docker CE
sudo apt-get update && sudo apt-get install -y \docker-ce \docker-ce-cli \containerd.io \docker-buildx-plugin \docker-compose-plugin
Docker Compose 安裝
# 獲取最新穩定版(示例版本號可替換)
COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
sudo curl -L "https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" \-o /usr/local/bin/docker-compose# 權限配置
sudo chmod +x /usr/local/bin/docker-compose# 驗證安裝
docker-compose --version
2.2 部署架構解析
Dify 的 Docker 部署包含以下核心組件:
2.3 服務部署實戰
步驟 1:獲取部署清單
git clone -b main https://github.com/langgenius/dify.git && cd dify/docker# 用戶推薦使用鏡像源:需要gitee賬號
# git clone https://gitee.com/langgenius/dify.git
步驟 2:環境配置
cp .env.example .env# 關鍵配置項建議修改
sed -i 's/HTTP_PORT=80/HTTP_PORT=5080/g' .env # 避免端口沖突
sed -i 's/SUPERADMIN_EMAIL=.*/SUPERADMIN_EMAIL=admin@yourdomain.com/g' .env
步驟 3:配置鏡像源
#配置鏡像加速源sudo nano /etc/docker/daemon.json"https://docker.1ms.run","https://hub.rat.dev","https://docker.1panel.live","https://hub.rat.dev","https://proxy.1panel.live","https://ghcr.nju.edu.cn","https://docker.registry.cyou","https://dockercf.jsdelivr.fyi","https://docker.rainbond.cc","https://registry.cn-shenzhen.aliyuncs.com","https://dockertest.jsdelivr.fyi","https://mirror.aliyuncs.com","https://mirror.baidubce.com","https://docker.mirrors.ustc.edu.cn","https://docker.mirrors.sjtug.sjtu.edu.cn","https://mirror.iscas.ac.cn","https://docker.nju.edu.cn","https://docker.m.daocloud.io","https://dockerproxy.com","https://docker.jsdelivr.fyi","https://docker-cf.registry.cyou"sudo systemctl daemon-reloadsudo systemctl restart docker
步驟 4:啟動服務集群
# 首次啟動建議觀察日志:下載速度可能比較慢
docker-compose up -d --build && docker-compose logs -f --tail=100
三、部署驗證與初始化
3.1 服務狀態檢查
# 預期輸出示例
docker-compose psroot@wh-VMware-Virtual-Platform:~/dify/docker# docker-compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
docker-api-1 langgenius/dify-api:1.1.3 "/bin/bash /entrypoi…" api 21 minutes ago Up 21 minutes 5001/tcp
docker-db-1 postgres:15-alpine "docker-entrypoint.s…" db 21 minutes ago Up 21 minutes (healthy) 5432/tcp
docker-nginx-1 nginx:latest "sh -c 'cp /docker-e…" nginx 21 minutes ago Up 21 minutes
3.2 初始化管理員賬戶
- 訪問
http://<your-server-ip>:80
- 按提示填寫:
- 組織名稱
- 管理員郵箱
- 密碼(復雜度要求:至少8位含大小寫字母和數字)
四、高階配置指南
4.1 反向代理配置(可選)
#以上是全量安裝已配置好nginx,可無需配置
server {listen 80;server_name dify.yourdomain.com;location / {proxy_pass http://localhost:5080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# WebSocket 支持proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";}
}
4.2 數據持久化配置(可選)
默認數據存儲路徑:
- PostgreSQL:/var/lib/docker/volumes/dify_pg-data/_data
- Redis:/var/lib/docker/volumes/dify_redis-data/_data
建議綁定到自定義目錄:
# 修改 docker-compose.yml
services:postgres:volumes:- /data/dify/postgres:/var/lib/postgresql/dataredis:volumes:- /data/dify/redis:/data
五、故障排查手冊
5.1 常見問題處理
問題 1:容器啟動失敗
? 排查步驟:
- 查看日志:
docker-compose logs <service-name>
- 檢查端口沖突:
ss -tulnp | grep ':80'
- 驗證依賴服務:確保 PostgreSQL/Redis 正常啟動
問題 2:無法訪問安裝頁面
? 解決方案:
- 檢查防火墻設置:
sudo ufw allow 5080/tcp
- 驗證服務綁定地址:
docker exec dify-web netstat -ant | grep 3000
六、維護與升級
6.1 服務更新流程
# 拉取最新代碼
git pull origin main# 重建服務
docker-compose down && docker-compose up -d --build
6.2 數據備份方案
# PostgreSQL 備份
docker exec dify-db pg_dump -U postgres dify > dify_backup_$(date +%Y%m%d).sql# Redis 備份
docker exec dify-redis redis-cli save
cp /data/dify/redis/dump.rdp ./redis_backup_$(date +%Y%m%d).rdb
技術總結
本文詳細闡述了 Dify 開源平臺的容器化部署方案,具有以下技術亮點:
- 全棧隔離部署:通過 Docker Compose 實現服務組件隔離,確保環境一致性
- 生產級配置:包含反向代理、數據持久化等企業級部署方案
- 可觀測性增強:提供完整的日志查看與狀態監控命令
- 大陸優化方案:針對國內用戶提供鏡像加速配置建議
建議將本文所述方案部署于測試環境驗證后,再遷移至生產環境。更多高級配置請參考 Dify 官方文檔。
如果本教程幫助您解決了問題,請點贊??收藏?支持!歡迎在評論區留言交流技術細節!