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