| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | #!/bin/bash# 设置变量PROJECT_NAME="bd-app-backend"DOCKER_IMAGE_NAME="bd-app-backend"REMOTE_REGISTRY=${REMOTE_REGISTRY:-"docker.xt.wenhq.top:8083/bd"}VERSION_FILE="version"LOG_FILE="deploy.log"# 日志函数log() {  echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a $LOG_FILE}# 读取当前版本号CURRENT_VERSION=$(cat $VERSION_FILE)if [ -z "$CURRENT_VERSION" ]; then  CURRENT_VERSION="0.0"fi# 分离大版本号和小版本号CURRENT_MAJOR=$(echo $CURRENT_VERSION | cut -d'.' -f1)CURRENT_MINOR=$(echo $CURRENT_VERSION | cut -d'.' -f2)# 用户选择是否修改大版本号read -p "是否修改大版本号?(a/i/ne): " modify_major_versionif [ "$modify_major_version" == "a" ]; then  CURRENT_MAJOR=$((CURRENT_MAJOR + 1))  CURRENT_MINOR=0  # 重置小版本号elif [ "$modify_major_version" == "i" ]; then  CURRENT_MINOR=$((CURRENT_MINOR + 1))  # 增加小版本号else  echo "跳过版本号修改"fi# 更新版本号NEXT_VERSION="${CURRENT_MAJOR}.${CURRENT_MINOR}"echo $NEXT_VERSION > $VERSION_FILEecho "版本号:" $NEXT_VERSION# 用户选择执行的步骤echo "请选择要执行的步骤(输入数字):"echo "1. 编译bd-app-backend项目"echo "2. 构建Docker镜像"echo "3. 推送Docker镜像到远程仓库"echo "4. 执行所有步骤"read -p "请输入选项(1/2/3/4): " choice# 编译项目compile_project() {  log "开始编译bd-app-backend项目..."  mvn clean install  if [ $? -ne 0 ]; then    log "bd-app-backend项目编译失败。退出脚本。"    exit 1  fi  log "bd-app-backend项目编译完成"}# 构建Docker镜像build_docker_image() {  log "开始构建Docker镜像..."  docker build -t ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} .  if [ $? -ne 0 ]; then    log "Docker镜像构建失败。退出脚本。"    exit 1  fi  log "Docker镜像构建完成"}# 推送Docker镜像到远程仓库push_docker_image() {  log "开始推送Docker镜像到远程仓库..."  docker push ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION}  if [ $? -ne 0 ]; then    log "Docker镜像推送失败。退出脚本。"    exit 1  fi  log "Docker镜像推送完成"}# 根据用户选择执行相应的步骤case $choice in  1)    compile_project    ;;  2)    build_docker_image    ;;  3)    push_docker_image    ;;  4)    compile_project    build_docker_image    push_docker_image    ;;  *)    log "无效的选项。退出脚本。"    exit 1    ;;esaclog "所有任务完成"
 |