|
@@ -3,9 +3,15 @@
|
|
|
# 设置变量
|
|
|
PROJECT_NAME="bd-app-backend"
|
|
|
DOCKER_IMAGE_NAME="bd-app-backend"
|
|
|
-REMOTE_REGISTRY="docker.xt.wenhq.top:8083/bd"
|
|
|
+REMOTE_REGISTRY=${REMOTE_REGISTRY:-"docker.xt.wenhq.top:8083/bd"}
|
|
|
VERSION_FILE="version"
|
|
|
-echo "!!!!bd-app-backend docker 发布脚本"
|
|
|
+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
|
|
@@ -17,20 +23,21 @@ CURRENT_MAJOR=$(echo $CURRENT_VERSION | cut -d'.' -f1)
|
|
|
CURRENT_MINOR=$(echo $CURRENT_VERSION | cut -d'.' -f2)
|
|
|
|
|
|
# 用户选择是否修改大版本号
|
|
|
-read -p "是否修改大版本号?(y/n): " modify_major_version
|
|
|
+read -p "是否修改大版本号?(a/i/ne): " modify_major_version
|
|
|
|
|
|
-if [ "$modify_major_version" == "y" ]; then
|
|
|
- read -p "请输入新的大版本号: " new_major_version
|
|
|
- CURRENT_MAJOR=$new_major_version
|
|
|
+if [ "$modify_major_version" == "a" ]; then
|
|
|
+ CURRENT_MAJOR=$((CURRENT_MAJOR + 1))
|
|
|
CURRENT_MINOR=0 # 重置小版本号
|
|
|
-else
|
|
|
+elif [ "$modify_major_version" == "i" ]; then
|
|
|
CURRENT_MINOR=$((CURRENT_MINOR + 1)) # 增加小版本号
|
|
|
+else
|
|
|
+ echo "跳过版本号修改"
|
|
|
fi
|
|
|
|
|
|
# 更新版本号
|
|
|
NEXT_VERSION="${CURRENT_MAJOR}.${CURRENT_MINOR}"
|
|
|
echo $NEXT_VERSION > $VERSION_FILE
|
|
|
-
|
|
|
+echo "版本号:" $NEXT_VERSION
|
|
|
# 用户选择执行的步骤
|
|
|
echo "请选择要执行的步骤(输入数字):"
|
|
|
echo "1. 编译bd-app-backend项目"
|
|
@@ -39,70 +46,59 @@ 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)
|
|
|
- # 1. 编译Vue项目
|
|
|
- echo "开始编译bd-app-backend项目..."
|
|
|
- mvn clean install
|
|
|
- if [ $? -ne 0 ]; then
|
|
|
- echo "bd-app-backend项目编译失败。退出脚本。"
|
|
|
- exit 1
|
|
|
- fi
|
|
|
- echo "bd-app-backend项目编译完成"
|
|
|
+ compile_project
|
|
|
;;
|
|
|
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镜像构建完成"
|
|
|
+ build_docker_image
|
|
|
;;
|
|
|
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镜像推送完成"
|
|
|
+ push_docker_image
|
|
|
;;
|
|
|
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镜像推送完成"
|
|
|
+ compile_project
|
|
|
+ build_docker_image
|
|
|
+ push_docker_image
|
|
|
;;
|
|
|
*)
|
|
|
- echo "无效的选项。退出脚本。"
|
|
|
+ log "无效的选项。退出脚本。"
|
|
|
exit 1
|
|
|
;;
|
|
|
esac
|
|
|
|
|
|
-echo "所有任务完成"
|
|
|
+log "所有任务完成"
|