82 lines
2.5 KiB
Bash
Executable File
82 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
# QAUP 服务器端打包脚本
|
||
# 在Ubuntu打包服务器上运行,使用已构建的jar文件进行打包
|
||
|
||
set -e
|
||
|
||
# 颜色输出
|
||
RED='\033[0;31m'
|
||
GREEN='\033[0;32m'
|
||
BLUE='\033[0;34m'
|
||
NC='\033[0m'
|
||
|
||
print_message() {
|
||
echo -e "${1}${2}${NC}"
|
||
}
|
||
|
||
print_message $BLUE "=== QAUP 服务器端打包脚本 ==="
|
||
|
||
# 检查jar文件是否存在
|
||
JAR_FILE="qaup-admin/target/qaup-admin.jar"
|
||
if [ ! -f "$JAR_FILE" ]; then
|
||
print_message $RED "❌ 未找到jar文件: $JAR_FILE"
|
||
echo "请先在macOS上构建jar文件并上传到服务器"
|
||
echo "或者将jar文件放到正确位置"
|
||
exit 1
|
||
fi
|
||
|
||
print_message $GREEN "✓ 找到jar文件: $JAR_FILE"
|
||
|
||
# 检查Docker是否可用
|
||
if ! command -v docker &> /dev/null; then
|
||
print_message $RED "❌ Docker 未安装"
|
||
exit 1
|
||
fi
|
||
|
||
# 准备镜像版本
|
||
POSTGRES_IMAGE="m.daocloud.io/docker.io/postgis/postgis:17-3.5-alpine"
|
||
REDIS_IMAGE="m.daocloud.io/docker.io/library/redis:8.0-alpine"
|
||
OPENJDK_IMAGE="m.daocloud.io/docker.io/library/eclipse-temurin:21-jre"
|
||
|
||
print_message $BLUE "拉取基础镜像..."
|
||
docker pull --platform linux/amd64 $POSTGRES_IMAGE
|
||
docker pull --platform linux/amd64 $REDIS_IMAGE
|
||
docker pull --platform linux/amd64 $OPENJDK_IMAGE
|
||
|
||
# 导出镜像
|
||
print_message $BLUE "导出镜像..."
|
||
mkdir -p qaup-deploy
|
||
docker save $POSTGRES_IMAGE $REDIS_IMAGE $OPENJDK_IMAGE | gzip > qaup-deploy/images.tar.gz
|
||
|
||
# 复制必要文件
|
||
print_message $BLUE "准备部署文件..."
|
||
cp "$JAR_FILE" qaup-deploy/app.jar
|
||
cp deploy/simple/docker-compose.yml qaup-deploy/
|
||
cp deploy/simple/config.yml qaup-deploy/
|
||
|
||
# 复制数据库相关文件
|
||
mkdir -p qaup-deploy/sql
|
||
cp deploy/docker/postgres/qaup_database_schema.sql qaup-deploy/sql/ 2>/dev/null || echo "⚠ 数据库架构文件不存在"
|
||
cp deploy/docker/postgres/export/initial_data_complete.sql qaup-deploy/sql/ 2>/dev/null || echo "⚠ 完整初始数据文件不存在"
|
||
|
||
# 创建数据库初始化脚本
|
||
./deploy/simple/create-init-sql.sh
|
||
cp deploy/simple/init.sql qaup-deploy/
|
||
|
||
cp deploy/simple/deploy.sh qaup-deploy/
|
||
cp deploy/simple/update.sh qaup-deploy/
|
||
cp deploy/simple/DeployGuide.md qaup-deploy/
|
||
|
||
# 创建部署包
|
||
PACKAGE_NAME="qaup-deploy-$(date +%Y%m%d-%H%M%S).tar.gz"
|
||
tar -czf "$PACKAGE_NAME" -C qaup-deploy .
|
||
|
||
print_message $GREEN "✅ 打包完成: $PACKAGE_NAME"
|
||
print_message $BLUE "部署包大小: $(du -sh $PACKAGE_NAME | cut -f1)"
|
||
|
||
echo ""
|
||
echo "部署说明:"
|
||
echo "1. 将 $PACKAGE_NAME 传输到目标服务器"
|
||
echo "2. mkdir qaup-deploy && tar -xzf $PACKAGE_NAME -C qaup-deploy"
|
||
echo "3. cd qaup-deploy && ./deploy.sh" |