6.0 KiB
6.0 KiB
📌 部署配置说明
重要配置
1. MinIO配置(使用外部服务)
本系统使用外部已部署的MinIO服务,不在Docker中部署MinIO。
配置位置: ruoyi-admin/src/main/resources/application.yml
minio:
enabled: true
endpoint: http://49.232.154.205:10900
access-key: 4EsLD9g9OM09DT0HaBKj
secret-key: 05SFC5fleqTnaLRYBrxHiphMFYbGX5nYicj0WCHA
bucket: rtsp
如需更换MinIO服务器:
- 编辑上述配置文件
- 重新构建后端镜像:
docker-compose build backend - 重启服务:
docker-compose up -d
2. Python推理服务(CPU模式)
本系统不使用GPU,Python推理服务运行在CPU模式。
配置特点:
- ✅ 无需NVIDIA Docker Runtime
- ✅ 无需GPU驱动
- ✅ 适合CPU服务器部署
- ⚠️ 推理速度比GPU慢
如需提升性能:
- 使用更小的YOLOv8模型(如yolov8n.pt)
- 减小输入图像尺寸
- 调整置信度阈值
3. 服务端口配置
对外暴露端口:
- 前端:10080(可在.env中修改
FRONTEND_PORT)
内部端口(不对外暴露):
- 后端:8080
- Python服务:8000
- MySQL:3306
- Redis:6379
Docker Compose配置要点
服务列表
services:
mysql # MySQL数据库
redis # Redis缓存
python-service # Python推理服务(CPU)
backend # Java后端
frontend # Vue前端(唯一对外暴露)
注意:没有MinIO服务,使用外部MinIO。
服务依赖关系
frontend 依赖 backend (健康检查)
backend 依赖 mysql, redis (健康检查) + python-service (启动)
环境变量(.env)
# 数据库
MYSQL_HOST=rtsp-mysql
MYSQL_PORT=3306
MYSQL_PASSWORD=ruoyi123
# Redis
REDIS_HOST=rtsp-redis
REDIS_PORT=6379
# 后端
BACKEND_HOST=rtsp-backend
BACKEND_PORT=8080
# 前端(对外端口)
FRONTEND_PORT=10080
# Python服务
PYTHON_SERVICE_HOST=rtsp-python-service
PYTHON_SERVICE_PORT=8000
不包含MinIO配置(在application.yml中)
网络架构
内部网络(rtsp-network)
所有服务运行在同一个Docker网络中:
- 容器间通过容器名通信
- 外部只能访问前端(10080端口)
- 安全性高
对外访问
浏览器 → 前端:10080 → Nginx → 后端:8080
→ Python服务:8000
后端 → MySQL:3306
→ Redis:6379
→ MinIO:49.232.154.205:10900 (外部)
YOLOv8模型配置
模型要求
- 模型格式: PyTorch (.pt)
- 训练框架: Ultralytics YOLOv8
- 模型位置:
python-inference-service/models/best.pt - 类别文件:
python-inference-service/models/classes.txt(可选)
模型配置
models.json:
[
{
"name": "yolov8_detector",
"path": "models/yolov8_model.py",
"size": [640, 640]
}
]
性能调优(CPU模式)
编辑 yolov8_model.py:
# 降低置信度阈值(检测更多目标)
self.conf_threshold = 0.25
# 使用更小的输入尺寸(提升速度)
self.img_size = 320 # 或 480
# 建议使用 yolov8n.pt(最快的模型)
数据持久化
Docker卷
volumes:
mysql-data # MySQL数据
redis-data # Redis数据
backend-logs # 后端日志
backend-upload # 上传文件
注意:MinIO数据在外部服务器,不在本地。
数据备份
# 备份MySQL
docker exec rtsp-mysql mysqldump -u root -pruoyi123 ry-vue > backup.sql
# 备份Redis
docker exec rtsp-redis redis-cli SAVE
docker cp rtsp-redis:/data/dump.rdb ./redis-backup.rdb
部署检查清单
部署前检查
- YOLOv8模型文件(best.pt)已放置
- 类别文件(classes.txt)已创建(可选)
- .env配置已检查
- MinIO外部服务可访问
- Docker和Docker Compose已安装
- 端口10080未被占用
部署后检查
- 所有容器运行正常:
docker-compose ps - 前端可访问:http://localhost:10080
- 后端健康检查通过
- Python服务加载模型成功
- MySQL连接正常
- Redis连接正常
- MinIO外部服务连接正常
常见问题
Q1: MinIO连接失败
检查:
- 外部MinIO服务是否可访问
- application.yml中的配置是否正确
- 网络是否畅通
# 测试连接
curl http://49.232.154.205:10900/minio/health/live
Q2: Python推理慢
原因:CPU模式比GPU慢
优化:
- 使用yolov8n.pt(最小模型)
- 减小输入尺寸(320或480)
- 提高置信度阈值(减少检测框)
Q3: 容器启动失败
排查步骤:
# 查看日志
docker-compose logs [服务名]
# 检查端口占用
netstat -an | grep 10080
# 检查资源
docker stats
Q4: 模型加载失败
检查:
- best.pt文件是否存在
- 文件是否是YOLOv8格式
- Python依赖是否安装完整
# 进入容器检查
docker exec -it rtsp-python-service bash
ls -lh /app/models/
安全建议
-
修改默认密码
- MySQL: ruoyi123
- MinIO密钥(在application.yml中)
-
网络隔离
- 只暴露必要端口(10080)
- 使用防火墙限制访问
-
MinIO安全
- 使用HTTPS连接
- 定期更新密钥
- 限制bucket访问权限
-
定期备份
- MySQL数据
- Redis数据
- 应用日志
维护操作
更新服务
# 停止服务
docker-compose down
# 更新代码
git pull
# 重新构建
docker-compose build
# 启动服务
docker-compose up -d
查看日志
# 所有服务
docker-compose logs -f
# 特定服务
docker-compose logs -f backend
docker-compose logs -f python-service
清理资源
# 清理未使用的镜像
docker image prune -a
# 清理未使用的卷
docker volume prune
# 完全清理(包括数据)
docker-compose down -v
性能监控
# 查看资源使用
docker stats
# 查看容器状态
docker-compose ps
# 查看网络连接
docker network inspect rtsp-network
最后更新: 2025-09-30 配置版本: Docker Compose 3.8, YOLOv8 CPU模式