#!/bin/bash # 设置变量 PROJECT_NAME="bd-app-backend" DOCKER_IMAGE_NAME="bd-app-backend" REMOTE_REGISTRY="docker.xt.wenhq.top:8083/bd" VERSION_FILE="version" echo "!!!!bd-app-backend docker 发布脚本" # 读取当前版本号 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 "是否修改大版本号?(y/n): " modify_major_version if [ "$modify_major_version" == "y" ]; then read -p "请输入新的大版本号: " new_major_version CURRENT_MAJOR=$new_major_version CURRENT_MINOR=0 # 重置小版本号 else CURRENT_MINOR=$((CURRENT_MINOR + 1)) # 增加小版本号 fi # 更新版本号 NEXT_VERSION="${CURRENT_MAJOR}.${CURRENT_MINOR}" echo $NEXT_VERSION > $VERSION_FILE # 用户选择执行的步骤 echo "请选择要执行的步骤(输入数字):" echo "1. 编译bd-app-backend项目" echo "2. 构建Docker镜像" echo "3. 推送Docker镜像到远程仓库" echo "4. 执行所有步骤" read -p "请输入选项(1/2/3/4): " choice # 根据用户选择执行相应的步骤 case $choice in 1) # 1. 编译Vue项目 echo "开始编译bd-app-backend项目..." mvn clean install if [ $? -ne 0 ]; then echo "bd-app-backend项目编译失败。退出脚本。" exit 1 fi echo "bd-app-backend项目编译完成" ;; 2) # 2. 构建Docker镜像 echo "开始构建Docker镜像..." docker build -t ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} . if [ $? -ne 0 ]; then echo "Docker镜像构建失败。退出脚本。" exit 1 fi echo "Docker镜像构建完成" ;; 3) # 3. 推送Docker镜像到远程仓库 echo "开始推送Docker镜像到远程仓库..." docker push ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} if [ $? -ne 0 ]; then echo "Docker镜像推送失败。退出脚本。" exit 1 fi echo "Docker镜像推送完成" ;; 4) # 1. 编译Vue项目 echo "开始编译bd-app-backend项目..." mvn clean install if [ $? -ne 0 ]; then echo "bd-app-backend项目编译失败。退出脚本。" exit 1 fi echo "bd-app-backend项目编译完成" # 2. 构建Docker镜像 echo "开始构建Docker镜像..." docker build -t ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} . if [ $? -ne 0 ]; then echo "Docker镜像构建失败。退出脚本。" exit 1 fi echo "Docker镜像构建完成" # 3. 推送Docker镜像到远程仓库 echo "开始推送Docker镜像到远程仓库..." docker push ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} if [ $? -ne 0 ]; then echo "Docker镜像推送失败。退出脚本。" exit 1 fi echo "Docker镜像推送完成" ;; *) echo "无效的选项。退出脚本。" exit 1 ;; esac echo "所有任务完成"