# 宏量点云处理软件 - 内网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. 防火墙规则是否正确