QAUP_Management/deploy/docs/README-Docker.md

457 lines
9.5 KiB
Markdown

# 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` 文件(隐藏敏感信息)
---
**注意**:本文档持续更新,请定期查看最新版本。