# 🎉 Docker部署方案更新总结 根据您的需求,已完成以下更新: ## ✅ 主要变更 ### 1. YOLOv5 → YOLOv8 (Ultralytics) | 变更项 | 之前 | 现在 | |-------|------|------| | Python包 | `yolov5>=7.0.0` | `ultralytics>=8.0.0` | | 模型文件 | `garbage_model.py` | `yolov8_model.py` | | 模型名称 | `garbage_detector` | `yolov8_detector` | | API框架 | yolov5 | Ultralytics YOLO | **优势:** - ✨ 更高的检测精度 - ⚡ 更快的推理速度 - 🎯 更简单的API接口 - 📚 更好的官方文档支持 ### 2. 前端端口调整 | 变更项 | 之前 | 现在 | |-------|------|------| | 对外端口 | 80 | 10080 | | 容器内部端口 | 80 | 80 | | 访问地址 | http://localhost | http://localhost:10080 | **修改文件:** - `.env` - `FRONTEND_PORT=10080` - 所有文档中的访问地址 ## 📦 新增文件 ### 1. YOLOv8模型支持 - `python-inference-service/models/yolov8_model.py` - YOLOv8模型包装类 - `YOLOV8-SETUP.md` - YOLOv8配置和使用指南 - 更新 `python-inference-service/README.md` - 详细的YOLOv8文档 ### 2. 配置文件更新 - 更新 `python-inference-service/requirements.txt` - ultralytics依赖 - 更新 `python-inference-service/models/models.json` - 指向yolov8_model ### 3. 文档更新 - `README-DOCKER.md` - 更新端口和YOLOv8说明 - `DOCKER-QUICK-START.md` - 更新访问地址和YOLOv8说明 - `deploy.bat` / `deploy.sh` - 更新访问地址 - `UPDATE-SUMMARY.md` - 本文档 ## 🚀 使用指南 ### 准备工作 1. **准备YOLOv8模型文件** ```bash # 将训练好的模型放到指定位置 python-inference-service/models/best.pt ``` 2. **创建类别文件**(可选) ```bash # 创建 classes.txt,每行一个类别名 python-inference-service/models/classes.txt ``` 3. **检查环境变量** ```bash # 查看 .env 文件,确认端口配置 FRONTEND_PORT=10080 ``` ### 快速部署 #### Windows ```batch deploy.bat ``` #### Linux/Mac ```bash chmod +x deploy.sh ./deploy.sh ``` #### 手动部署 ```bash # 1. 启动所有服务 docker-compose up -d # 2. 查看服务状态 docker-compose ps # 3. 查看日志 docker-compose logs -f python-service ``` ### 访问系统 部署成功后访问: - **前端界面**: http://localhost:10080 - **后端API**: http://localhost:10080/prod-api/ - **Python API**: http://localhost:10080/python-api/ - **API文档**: http://localhost:10080/prod-api/swagger-ui.html ## 📋 YOLOv8模型要求 ### 模型训练 如果需要训练新模型: ```python from ultralytics import YOLO # 加载预训练模型 model = YOLO('yolov8n.pt') # n/s/m/l/x # 训练 results = model.train( data='data.yaml', epochs=100, imgsz=640, batch=16 ) # 模型保存在 runs/detect/train/weights/best.pt ``` ### 模型部署 ```bash # 1. 复制模型到项目 cp runs/detect/train/weights/best.pt python-inference-service/models/ # 2. 创建类别文件 cat > python-inference-service/models/classes.txt << EOF class1 class2 class3 EOF # 3. 重启服务 docker-compose restart python-service ``` ## 🔧 配置说明 ### 环境变量(.env) 所有配置集中在一个文件: ```bash # 前端端口 FRONTEND_PORT=10080 # MySQL MYSQL_HOST=rtsp-mysql MYSQL_PORT=3306 MYSQL_PASSWORD=ruoyi123 # Redis REDIS_HOST=rtsp-redis # MinIO MINIO_HOST=rtsp-minio MINIO_ACCESS_KEY=minio MINIO_SECRET_KEY=minio123 # Python服务 PYTHON_SERVICE_HOST=rtsp-python-service ``` ### 模型配置(models.json) ```json [ { "name": "yolov8_detector", "path": "models/yolov8_model.py", "size": [640, 640] } ] ``` ### 性能调优 编辑 `yolov8_model.py`: ```python # 置信度阈值 self.conf_threshold = 0.25 # 默认0.25 # 输入尺寸 self.img_size = 640 # 320/640/1280 ``` ## 🎯 服务架构 ``` ┌─────────────┐ │ Browser │ │ :10080 │ ← 唯一对外暴露 └──────┬──────┘ │ ┌──────▼──────┐ │ Frontend │ │ Nginx │ └──────┬──────┘ │ ┌───┴────────────────┐ │ │ ┌──▼───────┐ ┌──────▼──────┐ │ Backend │ │ Python │ │ :8080 │ │ Service │ │ │ │ :8000(CPU) │ └───┬──┬───┘ └─────────────┘ │ │ ┌───▼──▼───┐ ┌─────────────┐ │ MySQL │ │ MinIO(外部) │ │ Redis │ │ 49.232... │ └──────────┘ └─────────────┘ ``` ## ⚠️ 重要提示 ### 必须操作 1. ✅ 将 `best.pt` 文件放到 `python-inference-service/models/` 目录 2. ✅ 确保模型是 YOLOv8 训练的(不支持YOLOv5直接使用) 3. ✅ 首次启动等待1-2分钟 ### 可选操作 1. 📝 创建 `classes.txt` 类别文件 2. 🎨 调整置信度阈值 3. 🔧 修改MinIO配置(如需更换服务器) ### 常见问题 #### Q1: 模型加载失败 ```bash # 检查模型文件 ls -lh python-inference-service/models/best.pt # 查看日志 docker-compose logs python-service ``` #### Q2: 端口被占用 ```bash # 修改 .env 文件 FRONTEND_PORT=8080 # 改为其他端口 # 重启服务 docker-compose down docker-compose up -d ``` #### Q3: 如何更换MinIO服务 ```bash # 编辑 ruoyi-admin/src/main/resources/application.yml minio: endpoint: http://your-server:port access-key: your-key secret-key: your-secret bucket: your-bucket ``` ## 📖 文档导航 - 📘 **完整部署文档**: `README-DOCKER.md` - 🚀 **快速开始**: `DOCKER-QUICK-START.md` - 🤖 **YOLOv8配置**: `YOLOV8-SETUP.md` - 📋 **文件清单**: `DEPLOYMENT-FILES.md` - 🐍 **Python服务**: `python-inference-service/README.md` ## 🎓 学习资源 - [Ultralytics YOLOv8官方文档](https://docs.ultralytics.com/) - [YOLOv8训练教程](https://docs.ultralytics.com/modes/train/) - [Docker部署最佳实践](https://docs.docker.com/develop/dev-best-practices/) ## 💡 技术支持 遇到问题? 1. 查看日志:`docker-compose logs [服务名]` 2. 查看服务状态:`docker-compose ps` 3. 查看相关文档 4. 检查模型文件和配置 --- **更新日期**: 2025-09-30 **适用版本**: Docker Compose 3.8+, YOLOv8 8.0+ ✅ 所有更新已完成,可以直接使用!