在镜像中增加数据导出文件,修改部署指南
This commit is contained in:
parent
a100aa5f9a
commit
264e8c470c
@ -311,6 +311,22 @@ cp "$PROJECT_ROOT/deploy/.env.template" "$CONFIG_DIR/"
|
||||
# 复制部署脚本
|
||||
cp "$PROJECT_ROOT/deploy/deploy.sh" "$SCRIPTS_DIR/"
|
||||
|
||||
# 复制docker配置目录
|
||||
echo "复制Docker配置..."
|
||||
mkdir -p "$PROJECT_ROOT/offline-deploy/docker"
|
||||
cp -r "$PROJECT_ROOT/deploy/docker"/* "$PROJECT_ROOT/offline-deploy/docker/" 2>/dev/null || true
|
||||
|
||||
# 复制文档
|
||||
echo "复制文档..."
|
||||
mkdir -p "$PROJECT_ROOT/offline-deploy/docs"
|
||||
cp -r "$PROJECT_ROOT/deploy/docs"/* "$PROJECT_ROOT/offline-deploy/docs/" 2>/dev/null || true
|
||||
|
||||
# 复制数据库脚本(如果存在)
|
||||
if [ -d "$PROJECT_ROOT/sql" ]; then
|
||||
echo "复制数据库脚本..."
|
||||
cp -r "$PROJECT_ROOT/sql" "$PROJECT_ROOT/offline-deploy/"
|
||||
fi
|
||||
|
||||
# 创建离线部署说明
|
||||
cat > "$PROJECT_ROOT/offline-deploy/README-离线部署.md" << 'EOF'
|
||||
# QAUP 离线部署包
|
||||
@ -320,13 +336,24 @@ cat > "$PROJECT_ROOT/offline-deploy/README-离线部署.md" << 'EOF'
|
||||
- `images/` - Docker 镜像文件
|
||||
- `config/` - 配置文件
|
||||
- `scripts/` - 部署脚本
|
||||
- `docker/` - Docker配置和数据库初始化脚本
|
||||
- `docs/` - 部署文档
|
||||
- `sql/` - 数据库架构文件(如果存在)
|
||||
|
||||
## 重要文件说明
|
||||
|
||||
### 数据库初始化数据
|
||||
- `docker/postgres/export/01_system_data.sql` - 系统基础数据
|
||||
- `docker/postgres/export/02_business_data.sql` - 业务数据
|
||||
- `docker/postgres/export/03_sample_data.sql` - 示例数据
|
||||
- `docker/postgres/export/initial_data_complete.sql` - 完整初始化数据
|
||||
|
||||
## 部署步骤
|
||||
|
||||
1. 将整个 `offline-deploy` 目录复制到目标服务器
|
||||
2. 导入镜像:`./scripts/load-images.sh`
|
||||
2. 导入镜像:`sh ./scripts/load-images.sh`
|
||||
3. 配置环境:`cp config/.env.template .env` 并编辑
|
||||
4. 启动服务:`./scripts/deploy.sh install`
|
||||
4. 启动服务:`sh ./scripts/deploy.sh install`
|
||||
|
||||
## 系统要求
|
||||
|
||||
@ -334,6 +361,13 @@ cat > "$PROJECT_ROOT/offline-deploy/README-离线部署.md" << 'EOF'
|
||||
- Docker Compose 1.29+
|
||||
- 至少 4GB 内存
|
||||
- 至少 20GB 磁盘空间
|
||||
|
||||
## 数据库初始化
|
||||
|
||||
系统启动时会自动执行数据库初始化脚本,按以下顺序:
|
||||
1. 系统数据(用户、角色、权限等)
|
||||
2. 业务数据(机场配置、区域设置等)
|
||||
3. 示例数据(测试用途,可选)
|
||||
EOF
|
||||
|
||||
# 创建离线部署包
|
||||
|
||||
@ -40,165 +40,27 @@ cd QAUP-Management
|
||||
- 导出所有镜像为 tar.gz 文件
|
||||
- 生成镜像清单和校验和
|
||||
|
||||
#### 4. 创建离线部署包
|
||||
#### 4. 完成离线部署包创建
|
||||
|
||||
镜像准备脚本执行完成后,会自动创建完整的离线部署包:
|
||||
|
||||
```bash
|
||||
# 创建离线部署包制作脚本
|
||||
cat > create-offline-package.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
# 脚本执行完成后,会显示类似输出:
|
||||
# 离线部署包创建完成: qaup-offline-deploy-20240801_143022.tar.gz
|
||||
# 部署包大小: 1.2G
|
||||
|
||||
set -e
|
||||
|
||||
PACKAGE_NAME="qaup-offline-deploy-$(date +%Y%m%d)"
|
||||
PACKAGE_DIR="./$PACKAGE_NAME"
|
||||
|
||||
echo "创建离线部署包: $PACKAGE_NAME"
|
||||
|
||||
# 创建包目录结构
|
||||
mkdir -p "$PACKAGE_DIR"/{images,config,scripts,docs}
|
||||
|
||||
# 复制 Docker 镜像
|
||||
echo "复制 Docker 镜像..."
|
||||
cp -r offline-deploy/images/* "$PACKAGE_DIR/images/"
|
||||
|
||||
# 复制配置文件
|
||||
echo "复制配置文件..."
|
||||
cp docker-compose*.yml "$PACKAGE_DIR/"
|
||||
cp .env.template "$PACKAGE_DIR/"
|
||||
cp -r config "$PACKAGE_DIR/"
|
||||
cp -r docker "$PACKAGE_DIR/"
|
||||
|
||||
# 复制脚本文件
|
||||
echo "复制脚本文件..."
|
||||
cp deploy.sh "$PACKAGE_DIR/"
|
||||
cp -r docker "$PACKAGE_DIR/"
|
||||
|
||||
# 复制文档
|
||||
echo "复制文档..."
|
||||
cp -r docs "$PACKAGE_DIR/"
|
||||
cp README.md "$PACKAGE_DIR/" 2>/dev/null || true
|
||||
|
||||
# 复制数据库架构
|
||||
echo "复制数据库文件..."
|
||||
mkdir -p "$PACKAGE_DIR/sql"
|
||||
cp sql/qaup_database_schema.sql "$PACKAGE_DIR/sql/"
|
||||
|
||||
# 创建安装脚本
|
||||
cat > "$PACKAGE_DIR/install.sh" << 'INSTALL_EOF'
|
||||
#!/bin/bash
|
||||
|
||||
# QAUP 离线安装脚本
|
||||
|
||||
set -e
|
||||
|
||||
echo "========================================="
|
||||
echo " QAUP 系统离线安装"
|
||||
echo "========================================="
|
||||
|
||||
# 检查 Docker
|
||||
if ! command -v docker &> /dev/null; then
|
||||
echo "错误: Docker 未安装,请先安装 Docker"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v docker-compose &> /dev/null; then
|
||||
echo "错误: Docker Compose 未安装,请先安装 Docker Compose"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# 导入镜像
|
||||
echo "导入 Docker 镜像..."
|
||||
./docker/load-images.sh
|
||||
|
||||
# 初始化配置
|
||||
echo "初始化配置..."
|
||||
if [ ! -f .env ]; then
|
||||
cp .env.template .env
|
||||
echo "请编辑 .env 文件配置系统参数"
|
||||
fi
|
||||
|
||||
# 设置脚本权限
|
||||
echo "设置脚本权限..."
|
||||
find . -name "*.sh" -exec chmod +x {} \;
|
||||
|
||||
# 创建必要目录
|
||||
echo "创建数据目录..."
|
||||
mkdir -p data/{postgres,redis,uploads}
|
||||
mkdir -p logs/{postgres,redis,app,nginx}
|
||||
mkdir -p backup/postgres
|
||||
|
||||
echo ""
|
||||
echo "离线安装准备完成!"
|
||||
echo ""
|
||||
echo "下一步操作:"
|
||||
echo "1. 编辑 .env 文件配置系统参数"
|
||||
echo "2. 运行: ./deploy.sh install"
|
||||
echo ""
|
||||
|
||||
INSTALL_EOF
|
||||
|
||||
chmod +x "$PACKAGE_DIR/install.sh"
|
||||
|
||||
# 创建 README
|
||||
cat > "$PACKAGE_DIR/README.md" << 'README_EOF'
|
||||
# QAUP 系统离线部署包
|
||||
|
||||
## 快速开始
|
||||
|
||||
1. 解压部署包到目标服务器
|
||||
2. 运行安装脚本: `./install.sh`
|
||||
3. 编辑配置文件: `nano .env`
|
||||
4. 启动系统: `./deploy.sh install`
|
||||
|
||||
## 文档
|
||||
|
||||
- 部署指南: `docs/部署指南.md`
|
||||
- 离线部署指南: `docs/离线部署指南.md`
|
||||
- 故障排除: `docs/故障排除.md`
|
||||
|
||||
## 支持
|
||||
|
||||
如有问题,请参考故障排除文档或联系技术支持。
|
||||
README_EOF
|
||||
|
||||
# 创建版本信息
|
||||
cat > "$PACKAGE_DIR/VERSION" << 'VERSION_EOF'
|
||||
QAUP 系统离线部署包
|
||||
版本: 1.0.1
|
||||
构建时间: $(date)
|
||||
包含组件:
|
||||
- QAUP 应用 (Spring Boot)
|
||||
- PostgreSQL 数据库 (PostGIS)
|
||||
- Redis 缓存
|
||||
- Nginx 反向代理
|
||||
VERSION_EOF
|
||||
|
||||
# 打包
|
||||
echo "打包部署包..."
|
||||
tar -czf "${PACKAGE_NAME}.tar.gz" "$PACKAGE_DIR"
|
||||
|
||||
# 生成校验和
|
||||
echo "生成校验和..."
|
||||
sha256sum "${PACKAGE_NAME}.tar.gz" > "${PACKAGE_NAME}.tar.gz.sha256"
|
||||
|
||||
# 清理临时目录
|
||||
rm -rf "$PACKAGE_DIR"
|
||||
|
||||
echo ""
|
||||
echo "离线部署包创建完成:"
|
||||
echo " 文件: ${PACKAGE_NAME}.tar.gz"
|
||||
echo " 大小: $(du -sh ${PACKAGE_NAME}.tar.gz | cut -f1)"
|
||||
echo " 校验: ${PACKAGE_NAME}.tar.gz.sha256"
|
||||
echo ""
|
||||
|
||||
EOF
|
||||
|
||||
chmod +x create-offline-package.sh
|
||||
|
||||
# 运行打包脚本
|
||||
./create-offline-package.sh
|
||||
# 查看生成的文件
|
||||
ls -lh qaup-offline-deploy-*.tar.gz
|
||||
```
|
||||
|
||||
**离线部署包包含:**
|
||||
- Docker镜像文件(images/)
|
||||
- 配置文件(config/)
|
||||
- 部署脚本(scripts/)
|
||||
- 文档(docs/)
|
||||
- 镜像导入脚本
|
||||
- 校验和文件
|
||||
|
||||
### 阶段二:离线部署(在客户内网环境中进行)
|
||||
|
||||
#### 1. 传输部署包
|
||||
@ -228,8 +90,11 @@ cd qaup-offline-deploy-*
|
||||
#### 3. 运行离线安装
|
||||
|
||||
```bash
|
||||
# 运行安装脚本
|
||||
./install.sh
|
||||
# 导入镜像
|
||||
sh ./scripts/load-images.sh
|
||||
|
||||
# 初始化配置
|
||||
sh ./scripts/deploy.sh init
|
||||
```
|
||||
|
||||
安装脚本将:
|
||||
@ -263,7 +128,7 @@ NGINX_PORT=80
|
||||
|
||||
```bash
|
||||
# 一键部署
|
||||
./deploy.sh install
|
||||
sh ./scripts/deploy.sh install
|
||||
```
|
||||
|
||||
## 离线环境特殊配置
|
||||
@ -308,15 +173,8 @@ sudo ufw enable
|
||||
在有网络的环境中:
|
||||
|
||||
```bash
|
||||
# 构建新版本镜像
|
||||
./docker/prepare-offline-images.sh
|
||||
|
||||
# 创建更新包
|
||||
tar -czf qaup-update-$(date +%Y%m%d).tar.gz \
|
||||
offline-deploy/images/ \
|
||||
docker-compose*.yml \
|
||||
config/ \
|
||||
docker/
|
||||
# 构建新版本镜像(会自动创建更新包)
|
||||
sh ./deploy/docker/prepare-offline-images.sh
|
||||
```
|
||||
|
||||
### 2. 应用更新
|
||||
@ -325,19 +183,19 @@ tar -czf qaup-update-$(date +%Y%m%d).tar.gz \
|
||||
|
||||
```bash
|
||||
# 备份当前配置
|
||||
./docker/config-manager.sh backup
|
||||
sh ./docker/config-manager.sh backup
|
||||
|
||||
# 停止服务
|
||||
./deploy.sh stop
|
||||
sh ./deploy.sh stop
|
||||
|
||||
# 解压更新包
|
||||
tar -xzf qaup-update-*.tar.gz
|
||||
tar -xzf qaup-offline-deploy-*.tar.gz
|
||||
|
||||
# 导入新镜像
|
||||
./docker/load-images.sh
|
||||
sh ./scripts/load-images.sh
|
||||
|
||||
# 启动服务
|
||||
./deploy.sh start
|
||||
sh ./deploy.sh start
|
||||
```
|
||||
|
||||
## 离线监控
|
||||
@ -346,17 +204,17 @@ tar -xzf qaup-update-*.tar.gz
|
||||
|
||||
```bash
|
||||
# 启动本地监控
|
||||
./docker/monitor.sh watch 60
|
||||
sh ./docker/monitor.sh watch 60
|
||||
|
||||
# 设置告警监控
|
||||
./docker/alert-manager.sh monitor 300 &
|
||||
sh ./docker/alert-manager.sh monitor 300 &
|
||||
```
|
||||
|
||||
### 2. 日志管理
|
||||
|
||||
```bash
|
||||
# 配置日志轮转
|
||||
./docker/log-manager.sh setup
|
||||
sh ./docker/log-manager.sh setup
|
||||
|
||||
# 定期清理日志
|
||||
echo "0 2 * * * /opt/qaup/docker/log-manager.sh cleanup 30" | crontab -
|
||||
@ -366,30 +224,14 @@ echo "0 2 * * * /opt/qaup/docker/log-manager.sh cleanup 30" | crontab -
|
||||
|
||||
### 1. 数据备份
|
||||
|
||||
使用内置的备份脚本:
|
||||
|
||||
```bash
|
||||
# 创建备份脚本
|
||||
cat > backup-offline.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
|
||||
BACKUP_DIR="/backup/qaup/$(date +%Y%m%d)"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
|
||||
# 备份数据库
|
||||
docker exec qaup-postgres pg_dump -U postgres qaup | gzip > "$BACKUP_DIR/database.sql.gz"
|
||||
|
||||
# 备份配置文件
|
||||
tar -czf "$BACKUP_DIR/config.tar.gz" .env config/ docker/
|
||||
|
||||
# 备份上传文件
|
||||
tar -czf "$BACKUP_DIR/uploads.tar.gz" data/uploads/
|
||||
|
||||
echo "备份完成: $BACKUP_DIR"
|
||||
EOF
|
||||
|
||||
chmod +x backup-offline.sh
|
||||
# 手动备份
|
||||
sh ./docker/backup-restore.sh backup
|
||||
|
||||
# 设置定时备份
|
||||
echo "0 1 * * * /opt/qaup/backup-offline.sh" | crontab -
|
||||
echo "0 1 * * * /opt/qaup/docker/backup-restore.sh backup" | crontab -
|
||||
```
|
||||
|
||||
### 2. 系统备份
|
||||
@ -435,10 +277,10 @@ docker network ls
|
||||
|
||||
```bash
|
||||
# 验证配置文件
|
||||
./docker/config-manager.sh validate
|
||||
sh ./docker/config-manager.sh validate
|
||||
|
||||
# 重新初始化配置
|
||||
./docker/config-manager.sh init
|
||||
sh ./docker/config-manager.sh init
|
||||
```
|
||||
|
||||
## 安全考虑
|
||||
@ -501,26 +343,17 @@ sudo sysctl -p
|
||||
|
||||
### 日常维护
|
||||
|
||||
使用内置的运维脚本:
|
||||
|
||||
```bash
|
||||
# 创建维护脚本
|
||||
cat > daily-maintenance.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
# 系统状态检查
|
||||
sh ./docker/monitor.sh status
|
||||
|
||||
# 检查系统状态
|
||||
./docker/monitor.sh status
|
||||
# 系统清理
|
||||
sh ./docker/ops-manager.sh cleanup
|
||||
|
||||
# 检查磁盘空间
|
||||
df -h
|
||||
|
||||
# 清理临时文件
|
||||
docker system prune -f
|
||||
|
||||
# 备份数据
|
||||
./backup-offline.sh
|
||||
EOF
|
||||
|
||||
chmod +x daily-maintenance.sh
|
||||
echo "0 6 * * * /opt/qaup/daily-maintenance.sh" | crontab -
|
||||
# 设置定时维护
|
||||
echo "0 6 * * * /opt/qaup/docker/ops-manager.sh daily-maintenance" | crontab -
|
||||
```
|
||||
|
||||
### 定期检查
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
- **Docker**: 20.10 或更高版本
|
||||
- **Docker Compose**: 1.29 或更高版本
|
||||
- **其他工具**: curl, wget, unzip
|
||||
- **Python环境**(可选,用于开发工具): Python 3.6+, pip
|
||||
|
||||
## 安装 Docker 和 Docker Compose
|
||||
|
||||
@ -475,6 +476,25 @@ docker system prune -f
|
||||
./docker/config-manager.sh backup
|
||||
```
|
||||
|
||||
## 可选工具安装
|
||||
|
||||
### Python 开发工具(可选)
|
||||
|
||||
如果需要使用项目中的Python开发工具(如mock server),可以安装Python环境:
|
||||
|
||||
```bash
|
||||
# 安装Python和pip
|
||||
sudo apt update
|
||||
sudo apt install python3 python3-pip
|
||||
|
||||
# 安装Flask(用于mock server)
|
||||
pip3 install flask
|
||||
|
||||
# 运行mock server(开发测试用)
|
||||
cd tools
|
||||
python3 mock_server.py
|
||||
```
|
||||
|
||||
## 联系支持
|
||||
|
||||
如果遇到无法解决的问题,请提供以下信息:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user