增加一个在 ubuntu 服务器上打包的脚本

This commit is contained in:
Tian jianyong 2025-08-05 16:02:47 +08:00
parent 262a4276db
commit 94253125ba

View File

@ -0,0 +1,87 @@
#!/bin/bash
# QAUP Docker构建打包脚本
# 在Ubuntu打包服务器上运行使用Docker构建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 Docker构建打包脚本 ==="
# 检查Docker是否可用
if ! command -v docker &> /dev/null; then
print_message $RED "❌ Docker 未安装"
exit 1
fi
# 1. 使用Docker构建jar文件
print_message $BLUE "使用Docker构建应用..."
docker run --rm \
--platform linux/amd64 \
-v "$(pwd)":/workspace \
-w /workspace \
m.daocloud.io/docker.io/library/maven:latest \
mvn clean package -DskipTests -q
# 检查构建结果
JAR_FILE="qaup-admin/target/qaup-admin.jar"
if [ ! -f "$JAR_FILE" ]; then
print_message $RED "❌ jar文件构建失败"
exit 1
fi
# 2. 准备镜像版本
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:17-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
# 3. 导出镜像
print_message $BLUE "导出镜像..."
mkdir -p qaup-deploy
docker save $POSTGRES_IMAGE $REDIS_IMAGE $OPENJDK_IMAGE | gzip > qaup-deploy/images.tar.gz
# 4. 复制必要文件
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/
# 5. 创建部署包
PACKAGE_NAME="qaup-deploy-$(date +%Y%m%d-%H%M%S).zip"
cd qaup-deploy && zip -r ../$PACKAGE_NAME . && cd ..
print_message $GREEN "✅ 打包完成: $PACKAGE_NAME"
print_message $BLUE "部署包大小: $(du -sh $PACKAGE_NAME | cut -f1)"
echo ""
echo "部署说明:"
echo "1. 将 $PACKAGE_NAME 传输到目标服务器"
echo "2. unzip $PACKAGE_NAME && cd qaup-deploy"
echo "3. ./deploy.sh"