6.4 KiB
6.4 KiB
🎉 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- 本文档
🚀 使用指南
准备工作
-
准备YOLOv8模型文件
# 将训练好的模型放到指定位置 python-inference-service/models/best.pt -
创建类别文件(可选)
# 创建 classes.txt,每行一个类别名 python-inference-service/models/classes.txt -
检查环境变量
# 查看 .env 文件,确认端口配置 FRONTEND_PORT=10080
快速部署
Windows
deploy.bat
Linux/Mac
chmod +x deploy.sh
./deploy.sh
手动部署
# 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模型要求
模型训练
如果需要训练新模型:
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
模型部署
# 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)
所有配置集中在一个文件:
# 前端端口
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)
[
{
"name": "yolov8_detector",
"path": "models/yolov8_model.py",
"size": [640, 640]
}
]
性能调优
编辑 yolov8_model.py:
# 置信度阈值
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... │
└──────────┘ └─────────────┘
⚠️ 重要提示
必须操作
- ✅ 将
best.pt文件放到python-inference-service/models/目录 - ✅ 确保模型是 YOLOv8 训练的(不支持YOLOv5直接使用)
- ✅ 首次启动等待1-2分钟
可选操作
- 📝 创建
classes.txt类别文件 - 🎨 调整置信度阈值
- 🔧 修改MinIO配置(如需更换服务器)
常见问题
Q1: 模型加载失败
# 检查模型文件
ls -lh python-inference-service/models/best.pt
# 查看日志
docker-compose logs python-service
Q2: 端口被占用
# 修改 .env 文件
FRONTEND_PORT=8080 # 改为其他端口
# 重启服务
docker-compose down
docker-compose up -d
Q3: 如何更换MinIO服务
# 编辑 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
🎓 学习资源
💡 技术支持
遇到问题?
- 查看日志:
docker-compose logs [服务名] - 查看服务状态:
docker-compose ps - 查看相关文档
- 检查模型文件和配置
更新日期: 2025-09-30 适用版本: Docker Compose 3.8+, YOLOv8 8.0+
✅ 所有更新已完成,可以直接使用!