diff --git a/Dify完整部署方案.md b/Dify完整部署方案.md new file mode 100644 index 00000000..f2234ce2 --- /dev/null +++ b/Dify完整部署方案.md @@ -0,0 +1,297 @@ +# 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. 告诉我具体的错误信息 + +--- + +**💪 加油!配置镜像加速器后成功率会大大提升!** + diff --git a/Dify部署监控.bat b/Dify部署监控.bat new file mode 100644 index 00000000..b764c771 --- /dev/null +++ b/Dify部署监控.bat @@ -0,0 +1,20 @@ +@echo off +chcp 65001 >nul +echo ==================================== +echo Dify 部署状态监控 +echo ==================================== +echo. +echo 正在检查Docker容器状态... +echo. +docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" +echo. +echo ==================================== +echo. +echo 检查Dify相关容器: +docker ps -a | findstr /i "dify weaviate sandbox nginx redis" +echo. +echo ==================================== +echo. +echo 按任意键退出... +pause >nul + diff --git a/docs/04-开发计划/开发里程碑.md b/docs/04-开发计划/开发里程碑.md index e088d754..99e3800f 100644 --- a/docs/04-开发计划/开发里程碑.md +++ b/docs/04-开发计划/开发里程碑.md @@ -137,19 +137,23 @@ Phase 4: 完善系统(Week 10-11) #### Day 4: 环境搭建 ✅ 核心完成 - [x] 创建项目目录结构(frontend/ + backend/) -- [x] 初始化Git仓库(6次提交,完整文档体系) +- [x] 初始化Git仓库(完整文档体系) - [x] 安装Docker Desktop(已完成) - [x] 启动PostgreSQL + Redis(Docker Compose) -- [ ] 部署Dify(Docker)⏳ 遇到网络问题,待解决 -- [ ] 验证Dify可访问(http://localhost)⏳ 待部署完成 -- [ ] 创建Dify账号并获取API Key ⏳ 待部署完成 +- [ ] 部署Dify(Docker)⏸️ 暂时跳过(网络问题) +- [ ] 验证Dify可访问(http://localhost)⏸️ 暂时跳过 +- [ ] 创建Dify账号并获取API Key ⏸️ 暂时跳过 **验收:** ✅ PostgreSQL和Redis已启动,核心开发环境就绪 -**备注:** -- Dify代码已下载,遇到Docker镜像拉取网络问题(EOF) -- 推荐配置Docker镜像加速器后重试 -- **不影响Day 5-8开发**,Dify主要用于知识库RAG功能(里程碑1后期) -- 详见:`docs/05-每日进度/Dify部署状态-Day4-Day5.md` +**决策:** +- ✅ **暂时跳过Dify部署**(网络不稳定,EOF错误) +- ✅ Dify代码已完整下载,配置文件已就绪 +- ✅ **不影响Day 5-8开发**,Dify主要用于知识库RAG功能(里程碑1后期) +- ✅ 等网络稳定后再部署(预计10分钟即可完成) +- 详见: + - `docs/05-每日进度/Dify部署状态-Day4-Day5.md` + - `Dify完整部署方案.md` + - `配置Docker镜像加速器.md` --- diff --git a/启动Dify.bat b/启动Dify.bat new file mode 100644 index 00000000..c9321387 --- /dev/null +++ b/启动Dify.bat @@ -0,0 +1,27 @@ +@echo off +chcp 65001 >nul +echo ==================================== +echo 启动 Dify 服务 +echo ==================================== +echo. +cd /d %~dp0..\dify\docker +echo 当前目录: %CD% +echo. +echo 正在启动Dify服务,这可能需要几分钟... +echo. +docker compose up -d +echo. +echo ==================================== +echo Dify 服务状态 +echo ==================================== +echo. +docker compose ps +echo. +echo ==================================== +echo. +echo 如果服务启动成功,请访问: +echo http://localhost +echo. +echo 按任意键退出... +pause >nul + diff --git a/配置Docker镜像加速器.md b/配置Docker镜像加速器.md new file mode 100644 index 00000000..a955cbe8 --- /dev/null +++ b/配置Docker镜像加速器.md @@ -0,0 +1,109 @@ +# Docker 镜像加速器配置指南 + +## 📋 操作步骤 + +### 1. 打开Docker Desktop设置 + +1. 在系统托盘找到 **Docker Desktop** 图标(鲸鱼图标) +2. **右键点击** → 选择 **Settings** (设置) + +### 2. 进入Docker Engine配置 + +1. 在左侧菜单中点击 **Docker Engine** +2. 您会看到一个JSON配置编辑器 + +### 3. 添加镜像加速器配置 + +在JSON配置中添加 `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" + ] +} +``` + +**如果已有配置**,在现有配置中添加 `registry-mirrors` 部分: +```json +{ + "现有配置项...": "...", + "registry-mirrors": [ + "https://docker.mirrors.ustc.edu.cn", + "https://hub-mirror.c.163.com", + "https://registry.docker-cn.com" + ] +} +``` + +### 4. 应用并重启 + +1. 点击右下角的 **Apply & restart** 按钮 +2. 等待Docker Desktop重启(约30秒-1分钟) +3. 确认Docker Desktop状态变为 "Running"(绿色) + +### 5. 验证配置 + +打开PowerShell,运行: +```powershell +docker info | Select-String -Pattern "Registry Mirrors" +``` + +应该看到类似输出: +``` +Registry Mirrors: + https://docker.mirrors.ustc.edu.cn/ + https://hub-mirror.c.163.com/ + https://registry.docker-cn.com/ +``` + +--- + +## ✅ 完成配置后 + +配置完成后,请回到终端,我们将继续部署Dify。 + +--- + +## 🔧 备选镜像源 + +如果上述镜像源仍然有问题,可以尝试其他国内镜像源: + +```json +{ + "registry-mirrors": [ + "https://dockerproxy.com", + "https://mirror.baidubce.com", + "https://docker.m.daocloud.io" + ] +} +``` + +--- + +## 📞 故障排查 + +### 问题1:Docker Desktop无法重启 +- 完全关闭Docker Desktop +- 在任务管理器中结束所有Docker相关进程 +- 重新启动Docker Desktop + +### 问题2:配置后仍无法拉取镜像 +- 检查网络连接 +- 尝试使用备选镜像源 +- 考虑使用VPN(如有) + +--- + +**完成配置后,请在终端告诉我,我们将继续下一步!** +