微星项目的生产环境 Docker Compose 部署配置。
- Docker 和 Docker Compose
- 确保有足够的磁盘空间(建议至少 10GB)
- 串口设备权限(如果需要)
# 复制环境变量模板
cp .env.example .env
# 编辑环境变量
nano .env# 启动所有服务
docker-compose up -d
# 查看服务状态
docker-compose ps
# 查看日志
docker-compose logs -fweixing-setup/
├── data/ # 数据目录
│ ├── images/ # 正常图片
│ └── error/ # 错误图片
├── logs/ # 日志目录
├── temp/ # 临时文件
├── docker-compose.yml # Docker配置
├── .env # 环境变量
├── clean_database.sh # 数据库清理脚本
└── CHANGELOG.md # 更新日志
| 服务 | 端口 | 说明 |
|---|---|---|
| PostgreSQL | 5432 | 数据库服务 |
| Backend Service | 3000 | 后端 API 服务 |
| Frontend | 3002 | 前端界面 |
| WebSocket | 8080 | WebSocket 服务 |
| UDP Server | 2000 | UDP 数据接收 |
| TCP Server 1 | 8999 | TCP 相机服务 1 |
| TCP Server 2 | 9000 | TCP 相机服务 2 |
| TCP Server 3 | 9001 | TCP 相机服务 3 |
- 所有图片数据统一存储在
data/目录下 - 错误图片存储在
data/error/子目录 - 日志文件存储在
logs/目录 - 确保
data/目录有足够的存储空间
项目提供了数据库清理脚本 clean_database.sh,用于定期清理历史数据(保留最近 45 天)。
# 执行清理脚本
./clean_database.sh建议设置每日自动执行清理任务,避免数据库数据过多:
# 编辑 crontab
crontab -e
# 添加以下行(每天凌晨2点执行)
0 2 * * * /home/tongrang/桌面/weixing-setup/clean_database.sh >> /home/tongrang/桌面/weixing-setup/logs/cleanup.log 2>&1注意:请将路径替换为实际的项目路径。
- 清理表:
quality_records和measurements - 保留期限:最近 45 天的数据
- 清理后操作:自动执行
VACUUM ANALYZE优化表性能
可以使用以下 SQL 查询查看各个表的大小(按总大小降序排列):
SELECT
relname AS table,
pg_size_pretty(pg_total_relation_size(relid)) AS total
FROM pg_catalog.pg_statio_user_tables
ORDER BY pg_total_relation_size(relid) DESC;执行方式:
# 通过 Docker 容器执行查询
docker exec -i postgres psql -U weixing -d weixing-db -c "SELECT relname AS table, pg_size_pretty(pg_total_relation_size(relid)) AS total FROM pg_catalog.pg_statio_user_tables ORDER BY pg_total_relation_size(relid) DESC;"