- Complete knowledge base list and detail pages - Complete document upload component - Fix CORS config (add PUT/DELETE method support) - Fix file upload issues (disabled state and beforeUpload return value) - Add detailed debug logs (cleaned up) - Create Day 21-22 completion summary document
301 lines
5.7 KiB
Markdown
301 lines
5.7 KiB
Markdown
# Dify 完整部署方案 - 网络优化版
|
||
|
||
**日期**: 2025-10-10
|
||
**状态**: 正在部署
|
||
|
||
---
|
||
|
||
## 🎯 当前情况
|
||
|
||
✅ **好消息**:
|
||
- Dify代码已完整下载
|
||
- Docker镜像**已开始下载**
|
||
- 部分镜像层已成功下载(如:54e822d8ee0c Already exists)
|
||
|
||
❌ **问题**:
|
||
- 网络不稳定,出现EOF错误
|
||
- 需要优化网络配置
|
||
|
||
---
|
||
|
||
## 🚀 推荐方案:配置镜像加速 + 持续重试
|
||
|
||
### 第一步:立即配置Docker镜像加速器 ⚡
|
||
|
||
**这是关键步骤,可以大幅提升成功率!**
|
||
|
||
#### 操作步骤:
|
||
|
||
1. **右键点击**系统托盘的Docker Desktop图标(🐋)
|
||
2. 选择 **Settings** (设置)
|
||
3. 左侧菜单选择 **Docker Engine**
|
||
4. 在JSON配置编辑器中,找到现有配置
|
||
5. 添加或修改 `registry-mirrors` 配置:
|
||
|
||
```json
|
||
{
|
||
"builder": {
|
||
"gc": {
|
||
"defaultKeepStorage": "20GB",
|
||
"enabled": true
|
||
}
|
||
},
|
||
"experimental": false,
|
||
"registry-mirrors": [
|
||
"https://docker.mirrors.ustc.edu.cn",
|
||
"https://hub-mirror.c.163.com",
|
||
"https://registry.docker-cn.com",
|
||
"https://dockerproxy.com",
|
||
"https://mirror.baidubce.com"
|
||
]
|
||
}
|
||
```
|
||
|
||
6. 点击 **Apply & restart** (应用并重启)
|
||
7. 等待Docker重启完成(约30秒)
|
||
|
||
---
|
||
|
||
### 第二步:重新拉取镜像
|
||
|
||
Docker重启后,打开PowerShell并运行:
|
||
|
||
```powershell
|
||
# 进入Dify目录
|
||
cd D:\MyCursor\dify\docker
|
||
|
||
# 重新拉取镜像(这次应该会快很多)
|
||
docker compose pull
|
||
```
|
||
|
||
**预计时间**: 10-20分钟(取决于网络速度)
|
||
|
||
---
|
||
|
||
### 第三步:启动Dify服务
|
||
|
||
镜像拉取完成后:
|
||
|
||
```powershell
|
||
# 启动所有服务
|
||
docker compose up -d
|
||
|
||
# 等待服务启动(约2-3分钟)
|
||
Start-Sleep -Seconds 120
|
||
|
||
# 查看服务状态
|
||
docker compose ps
|
||
```
|
||
|
||
---
|
||
|
||
### 第四步:验证部署
|
||
|
||
1. **检查容器状态**:
|
||
```powershell
|
||
docker ps | findstr dify
|
||
```
|
||
|
||
应该看到以下容器运行中:
|
||
- docker-api-1
|
||
- docker-worker-1
|
||
- docker-web-1
|
||
- docker-nginx-1
|
||
- docker-weaviate-1
|
||
- docker-redis-1
|
||
- docker-db-1
|
||
|
||
2. **访问Dify界面**:
|
||
- 打开浏览器
|
||
- 访问:http://localhost
|
||
- 应该看到Dify欢迎页面
|
||
|
||
3. **完成初始化**:
|
||
- 创建管理员账号
|
||
- 设置管理员密码
|
||
- 获取API Key
|
||
|
||
---
|
||
|
||
## 🔄 备选方案:如果镜像加速器仍然失败
|
||
|
||
### 方案1:逐个拉取镜像
|
||
|
||
```powershell
|
||
cd D:\MyCursor\dify\docker
|
||
|
||
# 一次拉取一个服务的镜像
|
||
docker compose pull redis
|
||
docker compose pull db
|
||
docker compose pull nginx
|
||
docker compose pull weaviate
|
||
docker compose pull api
|
||
docker compose pull worker
|
||
docker compose pull web
|
||
docker compose pull sandbox
|
||
|
||
# 全部拉取完成后启动
|
||
docker compose up -d
|
||
```
|
||
|
||
### 方案2:使用国内Dify镜像(如果有)
|
||
|
||
检查Dify是否提供国内镜像源。
|
||
|
||
### 方案3:暂时跳过Dify部署
|
||
|
||
**如果网络问题持续无法解决**,可以:
|
||
1. 先继续Day 6的前端开发
|
||
2. 使用大模型API直接实现对话功能
|
||
3. 等网络稳定或有VPN时再部署Dify
|
||
4. 或者考虑使用其他RAG方案
|
||
|
||
---
|
||
|
||
## 📊 Dify完整架构说明
|
||
|
||
当Dify成功部署后,它包含以下组件:
|
||
|
||
| 服务 | 端口 | 说明 |
|
||
|------|------|------|
|
||
| nginx | 80 | 反向代理,统一入口 |
|
||
| api | 5001 | Dify API服务 |
|
||
| web | 3000 | Dify前端界面 |
|
||
| worker | - | 后台任务处理 |
|
||
| worker_beat | - | 定时任务调度 |
|
||
| db (PostgreSQL) | 5432 | Dify数据库 |
|
||
| redis | 6379 | 缓存服务 |
|
||
| weaviate | 8080 | 向量数据库(RAG核心) |
|
||
| sandbox | 8194 | 代码执行沙箱 |
|
||
|
||
---
|
||
|
||
## 🎯 快速命令参考
|
||
|
||
### 查看部署进度
|
||
```powershell
|
||
cd D:\MyCursor\dify\docker
|
||
docker compose ps
|
||
```
|
||
|
||
### 查看容器日志
|
||
```powershell
|
||
# 查看所有日志
|
||
docker compose logs
|
||
|
||
# 查看特定服务日志
|
||
docker compose logs api
|
||
docker compose logs web
|
||
```
|
||
|
||
### 重启服务
|
||
```powershell
|
||
docker compose restart
|
||
```
|
||
|
||
### 停止服务
|
||
```powershell
|
||
docker compose down
|
||
```
|
||
|
||
### 完全清理并重新部署
|
||
```powershell
|
||
docker compose down -v # -v 会删除数据卷
|
||
docker compose pull
|
||
docker compose up -d
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ 部署成功检查清单
|
||
|
||
- [ ] Docker镜像加速器已配置
|
||
- [ ] 所有镜像拉取完成(无报错)
|
||
- [ ] `docker compose ps` 显示所有容器 "Up"
|
||
- [ ] 访问 http://localhost 可以打开Dify界面
|
||
- [ ] 完成初始化,创建管理员账号
|
||
- [ ] 获取Dify API Key
|
||
- [ ] 测试创建知识库功能
|
||
|
||
---
|
||
|
||
## 🔧 常见问题排查
|
||
|
||
### 问题1:端口冲突
|
||
|
||
**症状**:提示端口80或5432已被占用
|
||
|
||
**解决**:
|
||
```powershell
|
||
# 查看端口占用
|
||
netstat -ano | findstr :80
|
||
netstat -ano | findstr :5432
|
||
|
||
# 停止AI Clinical的PostgreSQL(如果冲突)
|
||
cd D:\MyCursor\AIclinicalresearch
|
||
docker-compose down
|
||
```
|
||
|
||
### 问题2:内存不足
|
||
|
||
**症状**:容器启动失败,提示OOM
|
||
|
||
**解决**:
|
||
- Docker Desktop → Settings → Resources
|
||
- 增加Memory限制到至少8GB
|
||
|
||
### 问题3:磁盘空间不足
|
||
|
||
**症状**:镜像拉取失败,提示no space left
|
||
|
||
**解决**:
|
||
```powershell
|
||
# 清理未使用的镜像
|
||
docker system prune -a
|
||
|
||
# 查看磁盘使用
|
||
docker system df
|
||
```
|
||
|
||
---
|
||
|
||
## 🎉 部署成功后的下一步
|
||
|
||
1. **获取API Key**
|
||
- 登录Dify控制台
|
||
- 进入设置 → API Keys
|
||
- 创建新的API Key
|
||
- 复制并保存到 `backend/.env` 的 `DIFY_API_KEY`
|
||
|
||
2. **创建测试知识库**
|
||
- 创建一个知识库
|
||
- 上传1-2个测试PDF文件
|
||
- 记录知识库ID
|
||
|
||
3. **更新开发里程碑**
|
||
- 标记Day 4的Dify部署任务为完成
|
||
- 更新文档
|
||
|
||
4. **继续Day 6开发**
|
||
- 开始前端基础架构搭建
|
||
- 集成Dify API
|
||
|
||
---
|
||
|
||
## 📞 需要帮助?
|
||
|
||
如果部署过程中遇到问题:
|
||
|
||
1. 查看本文档的"常见问题排查"部分
|
||
2. 查看容器日志:`docker compose logs`
|
||
3. 查看Dify官方文档:https://docs.dify.ai
|
||
4. 告诉我具体的错误信息
|
||
|
||
---
|
||
|
||
**💪 加油!配置镜像加速器后成功率会大大提升!**
|
||
|
||
|
||
|
||
|