Files
rtsp-video-analysis-system/DEPLOYMENT-NOTES.md

329 lines
6.0 KiB
Markdown
Raw Normal View History

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