From 94253125ba8f56998babe90b05fbf45e43b995b7 Mon Sep 17 00:00:00 2001 From: Tian jianyong <11429339@qq.com> Date: Tue, 5 Aug 2025 16:02:47 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=B8=80=E4=B8=AA=E5=9C=A8?= =?UTF-8?q?=20ubuntu=20=E6=9C=8D=E5=8A=A1=E5=99=A8=E4=B8=8A=E6=89=93?= =?UTF-8?q?=E5=8C=85=E7=9A=84=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy/simple/package-with-docker.sh | 87 ++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 deploy/simple/package-with-docker.sh diff --git a/deploy/simple/package-with-docker.sh b/deploy/simple/package-with-docker.sh new file mode 100644 index 00000000..93236701 --- /dev/null +++ b/deploy/simple/package-with-docker.sh @@ -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" \ No newline at end of file