QAUP_Management/deploy/docs/README-Docker.md

9.5 KiB

QAUP 系统 Docker 部署

重要说明

工作目录: 请确保在 deploy 目录下执行所有部署命令。

cd QAUP-Management/deploy  # 进入部署目录
./test-paths.sh           # 验证路径配置(推荐)

快速开始

数据准备(首次部署必需)

# 全新部署(使用默认数据)
./docker/postgres/db-manager.sh prepare-default

# 或从现有系统迁移
./docker/postgres/db-manager.sh prepare-export

一键部署

# 完整部署
./deploy.sh install

# 查看系统状态
./docker/ops-manager.sh overview

基本操作

# 启动服务
./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

常用操作

系统管理

# 查看系统概览
./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

服务管理

# 重启特定服务
./docker/ops-manager.sh service restart app

# 查看服务状态
./docker/ops-manager.sh service status

# 启动所有服务
./docker/ops-manager.sh service start all

日志管理

# 查看所有日志
./docker/ops-manager.sh logs all

# 查看应用日志
./docker/ops-manager.sh logs app 100

# 实时监控日志
./docker/log-manager.sh monitor app

# 分析错误日志
./docker/log-manager.sh analyze

备份管理

# 查看备份状态
./docker/ops-manager.sh backup status

# 创建完整备份
./docker/ops-manager.sh backup create

# 列出所有备份
./docker/ops-manager.sh backup list

# 清理旧备份
./docker/ops-manager.sh backup cleanup

监控和告警

# 实时监控
./docker/monitor.sh watch

# 检查告警
./docker/alert-manager.sh check

# 持续监控
./docker/alert-manager.sh monitor 300

# 查看告警历史
./docker/alert-manager.sh history

配置管理

环境配置

主要配置文件:.env

# 数据库配置
POSTGRES_PASSWORD=强密码
APP_DB_PASSWORD=强密码

# 服务器配置
SERVER_NAME=your-domain.com
NGINX_PORT=80

# 其他配置...

配置操作

# 初始化配置
./docker/config-manager.sh init

# 验证配置
./docker/config-manager.sh validate

# 备份配置
./docker/config-manager.sh backup

# 生成配置
./docker/config-manager.sh generate prod

性能优化

自动优化

# 应用所有优化
./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

安全配置

安全设置

# 应用所有安全配置
./docker/security-setup.sh all

# 配置 SSL/TLS
./docker/security-setup.sh ssl

# 配置防火墙
sudo ./docker/security-setup.sh firewall

# 配置文件权限
./docker/security-setup.sh permissions

安全检查

# 安全检查
./docker/ops-manager.sh security

# 密码强度检查
./docker/secrets-manager.sh check

# 生成强密码
./docker/secrets-manager.sh generate

故障排除

常见问题

  1. 容器无法启动

    # 查看容器日志
    docker logs qaup-app
    
    # 检查资源使用
    docker stats
    
    # 重启服务
    ./deploy.sh restart
    
  2. 服务无响应

    # 健康检查
    ./docker/ops-manager.sh health-check
    
    # 查看系统状态
    ./docker/ops-manager.sh diagnosis
    
    # 检查网络连接
    curl -I http://localhost/health
    
  3. 性能问题

    # 性能分析
    ./docker/ops-manager.sh performance
    
    # 应用性能优化
    ./docker/performance-tuning.sh all
    
    # 监控资源使用
    ./docker/monitor.sh resources
    

诊断工具

# 快速诊断
./docker/ops-manager.sh diagnosis

# 完整集成测试
./docker/integration-test.sh full

# 环境验证
./docker/validate-environment.sh

# 生成运维报告
./docker/ops-manager.sh report

更新和维护

系统更新

# 零停机更新
./docker/zero-downtime-update.sh full

# 滚动更新
./docker/zero-downtime-update.sh rolling

# 蓝绿部署
./docker/zero-downtime-update.sh blue-green

定期维护

# 每日维护
./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

离线部署

准备离线包

在有网络的环境中:

# 准备镜像
./docker/prepare-offline-images.sh

# 创建部署包
# (参考 docs/离线部署指南.md)

离线安装

在内网环境中:

# 解压部署包
tar -xzf qaup-offline-deploy-*.tar.gz

# 导入镜像
./docker/load-images.sh

# 安装系统
./install.sh
./deploy.sh install

监控和告警

监控设置

# 启动持续监控
./docker/monitor.sh watch 60 &

# 启动告警监控
./docker/alert-manager.sh monitor 300 &

# 配置日志轮转
./docker/log-manager.sh setup

告警配置

编辑 docker/healthcheck.yml 配置告警规则和阈值。

支持和文档

详细文档

获取帮助

# 查看脚本帮助
./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 文件(隐藏敏感信息)

注意:本文档持续更新,请定期查看最新版本。