Initial commit
This commit is contained in:
160
部署说明.md
Executable file
160
部署说明.md
Executable file
@@ -0,0 +1,160 @@
|
||||
# 宏量点云处理系统 — 离线部署说明
|
||||
|
||||
## 一、包内容
|
||||
|
||||
```
|
||||
massive-cloud-deploy-YYYYMMDD.tar.gz
|
||||
├── images/
|
||||
│ ├── app-dev.tar # 应用镜像 (含 CUDA / cadquery / PyTorch3D) ~10GB
|
||||
│ ├── mysql.tar # MySQL 8.0 ~786MB
|
||||
│ ├── minio.tar # MinIO 对象存储 ~180MB
|
||||
│ └── minio-mc.tar # MinIO Client (初始化桶) ~85MB
|
||||
├── src/ # 应用源码(容器启动时挂载并 pnpm install)
|
||||
├── docker/
|
||||
│ └── mysql/init.sql # 数据库首次初始化 SQL
|
||||
├── docker-compose.yml # 主编排文件
|
||||
├── docker-compose.gpu.yml # GPU overlay(旧版 docker-compose)
|
||||
├── docker-compose.gpu.compose-v2.yml # GPU overlay(Compose V2)
|
||||
├── .env.example # 环境变量模板
|
||||
├── load-images.sh # 一键载入所有镜像
|
||||
└── 部署说明.md # 本文件
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、目标服务器要求
|
||||
|
||||
| 项目 | 要求 |
|
||||
|------|------|
|
||||
| 操作系统 | Linux(推荐 Ubuntu 20.04/22.04 或 CentOS 7+) |
|
||||
| Docker | ≥ 19.03(推荐 24+) |
|
||||
| docker-compose | ≥ 1.29 或 Compose V2 插件 |
|
||||
| 磁盘 | 至少 40GB(镜像约 12GB + 数据目录预留) |
|
||||
| 内存 | ≥ 8GB(推荐 16GB+,点云分析内存消耗大) |
|
||||
| GPU(可选) | NVIDIA 显卡 + 已安装 `nvidia-container-toolkit`(用于 GPU 加速分析) |
|
||||
| 网络 | **内网即可**,无需互联网访问 |
|
||||
|
||||
---
|
||||
|
||||
## 三、部署步骤
|
||||
|
||||
### 1. 传输包
|
||||
|
||||
```bash
|
||||
# 从源服务器发送(约 xx GB,视压缩率而定)
|
||||
scp massive-cloud-deploy-YYYYMMDD.tar.gz user@目标IP:/opt/
|
||||
|
||||
# 登录目标服务器,解压
|
||||
ssh user@目标IP
|
||||
cd /opt
|
||||
tar -xzf massive-cloud-deploy-YYYYMMDD.tar.gz
|
||||
cd massive-cloud-deploy-YYYYMMDD
|
||||
```
|
||||
|
||||
### 2. 载入镜像
|
||||
|
||||
```bash
|
||||
bash load-images.sh
|
||||
```
|
||||
|
||||
> 10GB 以上镜像载入需要数分钟,请耐心等待。
|
||||
|
||||
### 3. 配置环境变量
|
||||
|
||||
```bash
|
||||
cp .env.example .env
|
||||
vi .env # 必须修改 JWT_SECRET;生产环境建议同时修改 MYSQL_ROOT_PASSWORD 等
|
||||
```
|
||||
|
||||
**至少修改以下项:**
|
||||
- `JWT_SECRET` → 随机长字符串(如 `openssl rand -hex 32`)
|
||||
- `DATA_DIR` → 存放 CAD 与点云的本地目录(如 `/data/massive`)
|
||||
|
||||
### 4. 准备数据目录
|
||||
|
||||
```bash
|
||||
# 假设 DATA_DIR=/data/massive
|
||||
mkdir -p /data/massive
|
||||
# 如需迁移现有数据,将 CAD/点云文件拷贝至此目录
|
||||
```
|
||||
|
||||
### 5. 启动服务
|
||||
|
||||
**无 GPU:**
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
|
||||
**有 NVIDIA GPU(旧版 docker-compose):**
|
||||
```bash
|
||||
# 先确认宿主机已安装 nvidia-container-toolkit:
|
||||
nvidia-smi # 能显示显卡则正常
|
||||
docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu20.04 nvidia-smi
|
||||
|
||||
# 启动
|
||||
docker-compose -f docker-compose.yml -f docker-compose.gpu.yml up -d
|
||||
```
|
||||
|
||||
**有 NVIDIA GPU(Compose V2 / `docker compose`):**
|
||||
```bash
|
||||
docker compose -f docker-compose.yml -f docker-compose.gpu.compose-v2.yml up -d
|
||||
```
|
||||
|
||||
### 6. 验证
|
||||
|
||||
```bash
|
||||
# 查看服务状态(mysql 需 healthy)
|
||||
docker-compose ps
|
||||
|
||||
# 查看应用日志(首次启动 pnpm install 需 1~2 分钟)
|
||||
docker-compose logs -f app
|
||||
|
||||
# 访问系统(浏览器)
|
||||
http://目标IP:3002
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、端口说明
|
||||
|
||||
| 服务 | 宿主机端口 | 说明 |
|
||||
|------|-----------|------|
|
||||
| 应用 | **3002** | Web 界面入口 |
|
||||
| MySQL | 3307 | 数据库(内部通信,无需对外开放) |
|
||||
| MinIO API | 9010 | 对象存储 API |
|
||||
| MinIO 控制台 | 9011 | MinIO Web 管理界面(可选开放) |
|
||||
|
||||
> 使用 `network_mode: host`,端口直接占用宿主机,请确认无冲突。
|
||||
|
||||
---
|
||||
|
||||
## 五、常见问题
|
||||
|
||||
**Q: 应用启动很慢?**
|
||||
A: 首次 `pnpm install` 安装依赖需 1~5 分钟,属正常现象。之后使用命名卷缓存,重启速度正常。
|
||||
|
||||
**Q: 日志出现 `Waiting for database…` 循环?**
|
||||
A: MySQL 初次启动初始化需时,应用会自动等待(最多 40 秒重试),正常结束后会打印 `[Migration] Database ready.`。
|
||||
|
||||
**Q: GPU 不可用?**
|
||||
A: 确认 `nvidia-container-toolkit` 已安装,或检查 `docker info | grep -i nvidia`;未映射 GPU 时系统自动回退 CPU,功能不受影响,仅部分分析耗时更长。
|
||||
|
||||
**Q: 端口 3307/3002 被占用?**
|
||||
A: 修改 `docker-compose.yml` 中对应 MySQL `MYSQL_TCP_PORT` 与 app `PORT` 环境变量,并同步修改 `DATABASE_URL`。
|
||||
|
||||
---
|
||||
|
||||
## 六、数据备份建议
|
||||
|
||||
```bash
|
||||
# 备份 MySQL(在源/目标服务器均可)
|
||||
docker exec massive-point-cloud-mysql \
|
||||
mysqldump -u root -p${MYSQL_ROOT_PASSWORD} pointcloud_db > backup_$(date +%Y%m%d).sql
|
||||
|
||||
# 备份 DATA_DIR(CAD + 点云 + 分析产物)
|
||||
tar -czf data_backup_$(date +%Y%m%d).tar.gz ${DATA_DIR}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
*生成时间:2026-04。若系统版本升级,请重新导出镜像并更新本包。*
|
||||
Reference in New Issue
Block a user