将检测任务迁移python
This commit is contained in:
329
DEPLOYMENT-NOTES.md
Normal file
329
DEPLOYMENT-NOTES.md
Normal file
@@ -0,0 +1,329 @@
|
||||
# 📌 部署配置说明
|
||||
|
||||
## 重要配置
|
||||
|
||||
### 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
|
||||
- MySQL:3306
|
||||
- Redis:6379
|
||||
|
||||
## 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模式
|
||||
Reference in New Issue
Block a user