# QAUP 系统 Docker 部署 ## 重要说明 **工作目录**: 请确保在 `deploy` 目录下执行所有部署命令。 ```bash cd QAUP-Management/deploy # 进入部署目录 ./test-paths.sh # 验证路径配置(推荐) ``` ## 快速开始 ### 数据准备(首次部署必需) ```bash # 全新部署(使用默认数据) ./docker/postgres/db-manager.sh prepare-default # 或从现有系统迁移 ./docker/postgres/db-manager.sh prepare-export ``` ### 一键部署 ```bash # 完整部署 ./deploy.sh install # 查看系统状态 ./docker/ops-manager.sh overview ``` ### 基本操作 ```bash # 启动服务 ./deploy.sh start # 停止服务 ./deploy.sh stop # 重启服务 ./deploy.sh restart # 查看状态 ./deploy.sh status ``` ## 系统架构 ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Nginx 容器 │ │ 应用容器 │ │ PostgreSQL │ │ (反向代理) │───▶│ (Spring Boot) │───▶│ (数据库) │ │ 端口: 80/443 │ │ 端口: 8080 │ │ 端口: 5432 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ │ ▼ ┌─────────────────┐ │ Redis 容器 │ │ (缓存) │ │ 端口: 6379 │ └─────────────────┘ ``` ## 目录结构 ``` QAUP-Management/ ├── docker/ # Docker 配置和脚本 │ ├── nginx/ # Nginx 配置 │ ├── postgres/ # PostgreSQL 配置 │ ├── *.sh # 管理脚本 │ └── *.yml # 配置文件 ├── config/ # 应用配置 ├── data/ # 数据目录 │ ├── postgres/ # 数据库数据 │ ├── redis/ # Redis 数据 │ └── uploads/ # 上传文件 ├── logs/ # 日志目录 ├── backup/ # 备份目录 ├── ssl/ # SSL 证书 ├── docker-compose*.yml # Docker Compose 配置 ├── .env # 环境变量 └── deploy.sh # 主部署脚本 ``` ## 管理脚本 ### 主要脚本 | 脚本 | 功能 | 示例 | | -------------------------- | ---------- | ---------------------------------- | | `deploy.sh` | 主部署脚本 | `./deploy.sh install` | | `docker/ops-manager.sh` | 运维管理 | `./docker/ops-manager.sh overview` | | `docker/monitor.sh` | 系统监控 | `./docker/monitor.sh watch` | | `docker/backup-restore.sh` | 备份恢复 | `./docker/backup-restore.sh full` | | `docker/log-manager.sh` | 日志管理 | `./docker/log-manager.sh view app` | ### 配置脚本 | 脚本 | 功能 | 示例 | | -------------------------------- | -------- | ------------------------------------ | | `docker/config-manager.sh` | 配置管理 | `./docker/config-manager.sh init` | | `docker/security-setup.sh` | 安全配置 | `./docker/security-setup.sh all` | | `docker/performance-tuning.sh` | 性能优化 | `./docker/performance-tuning.sh all` | | `docker/validate-environment.sh` | 环境验证 | `./docker/validate-environment.sh` | ### 测试脚本 | 脚本 | 功能 | 示例 | | ---------------------------- | -------- | ----------------------------------- | | `docker/integration-test.sh` | 集成测试 | `./docker/integration-test.sh full` | | `docker/alert-manager.sh` | 告警管理 | `./docker/alert-manager.sh check` | ## 常用操作 ### 系统管理 ```bash # 查看系统概览 ./docker/ops-manager.sh overview # 快速诊断 ./docker/ops-manager.sh diagnosis # 健康检查 ./docker/ops-manager.sh health-check # 性能分析 ./docker/ops-manager.sh performance # 安全检查 ./docker/ops-manager.sh security # 系统清理 ./docker/ops-manager.sh cleanup ``` ### 服务管理 ```bash # 重启特定服务 ./docker/ops-manager.sh service restart app # 查看服务状态 ./docker/ops-manager.sh service status # 启动所有服务 ./docker/ops-manager.sh service start all ``` ### 日志管理 ```bash # 查看所有日志 ./docker/ops-manager.sh logs all # 查看应用日志 ./docker/ops-manager.sh logs app 100 # 实时监控日志 ./docker/log-manager.sh monitor app # 分析错误日志 ./docker/log-manager.sh analyze ``` ### 备份管理 ```bash # 查看备份状态 ./docker/ops-manager.sh backup status # 创建完整备份 ./docker/ops-manager.sh backup create # 列出所有备份 ./docker/ops-manager.sh backup list # 清理旧备份 ./docker/ops-manager.sh backup cleanup ``` ### 监控和告警 ```bash # 实时监控 ./docker/monitor.sh watch # 检查告警 ./docker/alert-manager.sh check # 持续监控 ./docker/alert-manager.sh monitor 300 # 查看告警历史 ./docker/alert-manager.sh history ``` ## 配置管理 ### 环境配置 主要配置文件:`.env` ```bash # 数据库配置 POSTGRES_PASSWORD=强密码 APP_DB_PASSWORD=强密码 # 服务器配置 SERVER_NAME=your-domain.com NGINX_PORT=80 # 其他配置... ``` ### 配置操作 ```bash # 初始化配置 ./docker/config-manager.sh init # 验证配置 ./docker/config-manager.sh validate # 备份配置 ./docker/config-manager.sh backup # 生成配置 ./docker/config-manager.sh generate prod ``` ## 性能优化 ### 自动优化 ```bash # 应用所有优化 ./docker/performance-tuning.sh all # 仅优化 JVM ./docker/performance-tuning.sh jvm # 仅优化数据库 ./docker/performance-tuning.sh database ``` ### 手动优化 1. **JVM 参数调优**:编辑 `.env` 中的 `JVM_OPTS` 2. **数据库优化**:修改 `docker/postgres/postgresql.conf` 3. **Nginx 优化**:调整 `docker/nginx/nginx.conf` ## 安全配置 ### 安全设置 ```bash # 应用所有安全配置 ./docker/security-setup.sh all # 配置 SSL/TLS ./docker/security-setup.sh ssl # 配置防火墙 sudo ./docker/security-setup.sh firewall # 配置文件权限 ./docker/security-setup.sh permissions ``` ### 安全检查 ```bash # 安全检查 ./docker/ops-manager.sh security # 密码强度检查 ./docker/secrets-manager.sh check # 生成强密码 ./docker/secrets-manager.sh generate ``` ## 故障排除 ### 常见问题 1. **容器无法启动** ```bash # 查看容器日志 docker logs qaup-app # 检查资源使用 docker stats # 重启服务 ./deploy.sh restart ``` 2. **服务无响应** ```bash # 健康检查 ./docker/ops-manager.sh health-check # 查看系统状态 ./docker/ops-manager.sh diagnosis # 检查网络连接 curl -I http://localhost/health ``` 3. **性能问题** ```bash # 性能分析 ./docker/ops-manager.sh performance # 应用性能优化 ./docker/performance-tuning.sh all # 监控资源使用 ./docker/monitor.sh resources ``` ### 诊断工具 ```bash # 快速诊断 ./docker/ops-manager.sh diagnosis # 完整集成测试 ./docker/integration-test.sh full # 环境验证 ./docker/validate-environment.sh # 生成运维报告 ./docker/ops-manager.sh report ``` ## 更新和维护 ### 系统更新 ```bash # 零停机更新 ./docker/zero-downtime-update.sh full # 滚动更新 ./docker/zero-downtime-update.sh rolling # 蓝绿部署 ./docker/zero-downtime-update.sh blue-green ``` ### 定期维护 ```bash # 每日维护 ./docker/ops-manager.sh diagnosis ./docker/ops-manager.sh backup create # 每周维护 ./docker/ops-manager.sh cleanup ./docker/log-manager.sh cleanup 30 # 每月维护 ./docker/ops-manager.sh security ./docker/performance-tuning.sh all ``` ## 离线部署 ### 准备离线包 在有网络的环境中: ```bash # 准备镜像 ./docker/prepare-offline-images.sh # 创建部署包 # (参考 docs/离线部署指南.md) ``` ### 离线安装 在内网环境中: ```bash # 解压部署包 tar -xzf qaup-offline-deploy-*.tar.gz # 导入镜像 ./docker/load-images.sh # 安装系统 ./install.sh ./deploy.sh install ``` ## 监控和告警 ### 监控设置 ```bash # 启动持续监控 ./docker/monitor.sh watch 60 & # 启动告警监控 ./docker/alert-manager.sh monitor 300 & # 配置日志轮转 ./docker/log-manager.sh setup ``` ### 告警配置 编辑 `docker/healthcheck.yml` 配置告警规则和阈值。 ## 支持和文档 ### 详细文档 - [部署指南](docs/部署指南.md) - [离线部署指南](docs/离线部署指南.md) - [故障排除](docs/故障排除.md) ### 获取帮助 ```bash # 查看脚本帮助 ./deploy.sh help ./docker/ops-manager.sh help ./docker/monitor.sh help # 查看系统状态 ./docker/ops-manager.sh overview # 运行诊断 ./docker/ops-manager.sh diagnosis ``` ### 联系支持 如遇问题,请提供: 1. 系统信息:`./docker/ops-manager.sh report` 2. 错误日志:`./docker/log-manager.sh analyze` 3. 容器状态:`docker ps -a` 4. 配置信息:`.env` 文件(隐藏敏感信息) --- **注意**:本文档持续更新,请定期查看最新版本。