feat: initial commit - massive-cloud point cloud processing system
This commit is contained in:
264
DEPLOYMENT.md
Normal file
264
DEPLOYMENT.md
Normal file
@@ -0,0 +1,264 @@
|
||||
# 宏量点云处理软件 - 内网Docker部署指南
|
||||
|
||||
本文档详细说明如何在内网服务器上使用Docker部署宏量点云处理软件。
|
||||
|
||||
## 系统要求
|
||||
|
||||
### 硬件要求
|
||||
|
||||
| 配置项 | 最低要求 | 推荐配置 |
|
||||
|--------|----------|----------|
|
||||
| CPU | 4核 | 8核+ |
|
||||
| 内存 | 8GB | 16GB+ |
|
||||
| 存储 | 100GB SSD | 500GB+ SSD |
|
||||
| 网络 | 100Mbps | 1Gbps |
|
||||
|
||||
### 软件要求
|
||||
|
||||
- 操作系统: Linux (Ubuntu 20.04+, CentOS 7+, Debian 10+)
|
||||
- Docker: 20.10+
|
||||
- Docker Compose: 2.0+
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 1. 安装Docker和Docker Compose
|
||||
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
curl -fsSL https://get.docker.com | sh
|
||||
sudo usermod -aG docker $USER
|
||||
|
||||
# 安装Docker Compose
|
||||
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
||||
sudo chmod +x /usr/local/bin/docker-compose
|
||||
|
||||
# 重新登录以应用用户组更改
|
||||
```
|
||||
|
||||
### 2. 获取项目代码
|
||||
|
||||
```bash
|
||||
# 从GitHub克隆 (如果已导出到GitHub)
|
||||
git clone https://github.com/your-org/massive-point-cloud.git
|
||||
cd massive-point-cloud
|
||||
|
||||
# 或者直接上传项目文件到服务器
|
||||
```
|
||||
|
||||
### 3. 配置环境变量
|
||||
|
||||
```bash
|
||||
# 创建环境变量文件
|
||||
cat > .env << 'EOF'
|
||||
# 安全配置 - 请修改为随机值
|
||||
JWT_SECRET=$(openssl rand -base64 32)
|
||||
MYSQL_ROOT_PASSWORD=$(openssl rand -base64 16)
|
||||
|
||||
# MinIO配置
|
||||
MINIO_ROOT_USER=minioadmin
|
||||
MINIO_ROOT_PASSWORD=$(openssl rand -base64 16)
|
||||
|
||||
# 应用配置
|
||||
VITE_APP_TITLE=宏量点云处理系统
|
||||
EOF
|
||||
|
||||
# 或者手动编辑
|
||||
nano .env
|
||||
```
|
||||
|
||||
### 4. 启动服务
|
||||
|
||||
```bash
|
||||
# 基础部署 (应用 + MySQL + MinIO)
|
||||
docker-compose up -d
|
||||
|
||||
# 查看服务状态
|
||||
docker-compose ps
|
||||
|
||||
# 查看日志
|
||||
docker-compose logs -f
|
||||
```
|
||||
|
||||
### 5. 访问应用
|
||||
|
||||
- **Web应用**: http://your-server-ip:3000
|
||||
- **MinIO控制台**: http://your-server-ip:9001
|
||||
|
||||
## 部署架构
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ 内网服务器 │
|
||||
│ ┌─────────────────────────────────────────────────────┐ │
|
||||
│ │ Docker Network │ │
|
||||
│ │ │ │
|
||||
│ │ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │ │
|
||||
│ │ │ App │ │ MySQL │ │ MinIO │ │ │
|
||||
│ │ │ :3000 │ │ :3306 │ │ :9000 / :9001 │ │ │
|
||||
│ │ └────┬─────┘ └────┬─────┘ └────────┬─────────┘ │ │
|
||||
│ │ │ │ │ │ │
|
||||
│ │ └─────────────┴──────────────────┘ │ │
|
||||
│ │ │ │ │
|
||||
│ └──────────────────────┼──────────────────────────────┘ │
|
||||
│ │ │
|
||||
│ ┌──────────────────────┴──────────────────────────────┐ │
|
||||
│ │ Nginx (可选, 生产环境) │ │
|
||||
│ │ :80 / :443 │ │
|
||||
│ └──────────────────────────────────────────────────────┘ │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
## 服务说明
|
||||
|
||||
| 服务 | 端口 | 说明 |
|
||||
|------|------|------|
|
||||
| app | 3000 | 主应用服务 |
|
||||
| mysql | 3306 | MySQL数据库 |
|
||||
| minio | 9000 | MinIO API |
|
||||
| minio | 9001 | MinIO控制台 |
|
||||
| nginx | 80/443 | 反向代理 (可选) |
|
||||
| redis | 6379 | 缓存服务 (可选) |
|
||||
|
||||
## 高级配置
|
||||
|
||||
### 启用Nginx反向代理
|
||||
|
||||
```bash
|
||||
# 使用production profile启动
|
||||
docker-compose --profile production up -d
|
||||
```
|
||||
|
||||
### 启用Redis缓存
|
||||
|
||||
```bash
|
||||
# 使用with-cache profile启动
|
||||
docker-compose --profile with-cache up -d
|
||||
```
|
||||
|
||||
### 配置HTTPS
|
||||
|
||||
1. 将SSL证书放置到 `docker/nginx/ssl/` 目录:
|
||||
- `cert.pem` - 证书文件
|
||||
- `key.pem` - 私钥文件
|
||||
|
||||
2. 编辑 `docker/nginx/nginx.conf`,取消HTTPS服务器配置的注释
|
||||
|
||||
3. 重启Nginx:
|
||||
```bash
|
||||
docker-compose restart nginx
|
||||
```
|
||||
|
||||
### 数据持久化
|
||||
|
||||
所有数据存储在Docker卷中:
|
||||
|
||||
| 卷名 | 用途 |
|
||||
|------|------|
|
||||
| pointcloud-mysql-data | MySQL数据 |
|
||||
| pointcloud-minio-data | 点云文件存储 |
|
||||
| pointcloud-redis-data | Redis缓存 |
|
||||
| pointcloud-app-logs | 应用日志 |
|
||||
|
||||
备份数据:
|
||||
```bash
|
||||
# 备份MySQL
|
||||
docker exec massive-point-cloud-mysql mysqldump -u root -p pointcloud_db > backup.sql
|
||||
|
||||
# 备份MinIO数据
|
||||
docker run --rm -v pointcloud-minio-data:/data -v $(pwd):/backup alpine tar cvf /backup/minio-backup.tar /data
|
||||
```
|
||||
|
||||
## 运维命令
|
||||
|
||||
```bash
|
||||
# 查看所有服务状态
|
||||
docker-compose ps
|
||||
|
||||
# 查看实时日志
|
||||
docker-compose logs -f app
|
||||
|
||||
# 重启单个服务
|
||||
docker-compose restart app
|
||||
|
||||
# 停止所有服务
|
||||
docker-compose down
|
||||
|
||||
# 停止并删除数据卷 (危险!)
|
||||
docker-compose down -v
|
||||
|
||||
# 更新应用
|
||||
git pull
|
||||
docker-compose build app
|
||||
docker-compose up -d app
|
||||
|
||||
# 进入容器调试
|
||||
docker exec -it massive-point-cloud-app sh
|
||||
docker exec -it massive-point-cloud-mysql mysql -u root -p
|
||||
```
|
||||
|
||||
## 故障排查
|
||||
|
||||
### 应用无法启动
|
||||
|
||||
```bash
|
||||
# 检查日志
|
||||
docker-compose logs app
|
||||
|
||||
# 检查数据库连接
|
||||
docker exec massive-point-cloud-app curl -f http://mysql:3306 || echo "MySQL not ready"
|
||||
```
|
||||
|
||||
### 数据库连接失败
|
||||
|
||||
```bash
|
||||
# 检查MySQL状态
|
||||
docker-compose logs mysql
|
||||
|
||||
# 手动测试连接
|
||||
docker exec -it massive-point-cloud-mysql mysql -u pointcloud -p -e "SELECT 1"
|
||||
```
|
||||
|
||||
### MinIO无法访问
|
||||
|
||||
```bash
|
||||
# 检查MinIO状态
|
||||
docker-compose logs minio
|
||||
|
||||
# 检查存储桶
|
||||
docker exec massive-point-cloud-minio-init mc ls myminio/
|
||||
```
|
||||
|
||||
## 性能优化
|
||||
|
||||
### MySQL优化
|
||||
|
||||
编辑 `docker/mysql/my.cnf`:
|
||||
```ini
|
||||
[mysqld]
|
||||
innodb_buffer_pool_size = 2G
|
||||
innodb_log_file_size = 512M
|
||||
max_connections = 200
|
||||
```
|
||||
|
||||
### 增加文件上传限制
|
||||
|
||||
修改 `docker/nginx/nginx.conf`:
|
||||
```nginx
|
||||
client_max_body_size 5G;
|
||||
```
|
||||
|
||||
## 安全建议
|
||||
|
||||
1. **修改默认密码**: 务必修改 `.env` 中的所有默认密码
|
||||
2. **限制端口暴露**: 生产环境只暴露80/443端口
|
||||
3. **启用防火墙**: 配置iptables或firewalld
|
||||
4. **定期备份**: 设置自动备份任务
|
||||
5. **更新镜像**: 定期更新Docker镜像修复安全漏洞
|
||||
|
||||
## 联系支持
|
||||
|
||||
如遇到部署问题,请检查:
|
||||
1. Docker和Docker Compose版本是否满足要求
|
||||
2. 服务器资源是否充足
|
||||
3. 端口是否被占用
|
||||
4. 防火墙规则是否正确
|
||||
Reference in New Issue
Block a user