deploy.sh 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. #!/bin/bash
  2. # 设置变量
  3. PROJECT_NAME="bd-app-backend"
  4. DOCKER_IMAGE_NAME="bd-app-backend"
  5. REMOTE_REGISTRY="docker.xt.wenhq.top:8083/bd"
  6. VERSION_FILE="version"
  7. echo "!!!!bd-app-backend docker 发布脚本"
  8. # 读取当前版本号
  9. CURRENT_VERSION=$(cat $VERSION_FILE)
  10. if [ -z "$CURRENT_VERSION" ]; then
  11. CURRENT_VERSION="0.0"
  12. fi
  13. # 分离大版本号和小版本号
  14. CURRENT_MAJOR=$(echo $CURRENT_VERSION | cut -d'.' -f1)
  15. CURRENT_MINOR=$(echo $CURRENT_VERSION | cut -d'.' -f2)
  16. # 用户选择是否修改大版本号
  17. read -p "是否修改大版本号?(y/n): " modify_major_version
  18. if [ "$modify_major_version" == "y" ]; then
  19. read -p "请输入新的大版本号: " new_major_version
  20. CURRENT_MAJOR=$new_major_version
  21. CURRENT_MINOR=0 # 重置小版本号
  22. else
  23. CURRENT_MINOR=$((CURRENT_MINOR + 1)) # 增加小版本号
  24. fi
  25. # 更新版本号
  26. NEXT_VERSION="${CURRENT_MAJOR}.${CURRENT_MINOR}"
  27. echo $NEXT_VERSION > $VERSION_FILE
  28. # 用户选择执行的步骤
  29. echo "请选择要执行的步骤(输入数字):"
  30. echo "1. 编译bd-app-backend项目"
  31. echo "2. 构建Docker镜像"
  32. echo "3. 推送Docker镜像到远程仓库"
  33. echo "4. 执行所有步骤"
  34. read -p "请输入选项(1/2/3/4): " choice
  35. # 根据用户选择执行相应的步骤
  36. case $choice in
  37. 1)
  38. # 1. 编译Vue项目
  39. echo "开始编译bd-app-backend项目..."
  40. mvn clean install
  41. if [ $? -ne 0 ]; then
  42. echo "bd-app-backend项目编译失败。退出脚本。"
  43. exit 1
  44. fi
  45. echo "bd-app-backend项目编译完成"
  46. ;;
  47. 2)
  48. # 2. 构建Docker镜像
  49. echo "开始构建Docker镜像..."
  50. docker build -t ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} .
  51. if [ $? -ne 0 ]; then
  52. echo "Docker镜像构建失败。退出脚本。"
  53. exit 1
  54. fi
  55. echo "Docker镜像构建完成"
  56. ;;
  57. 3)
  58. # 3. 推送Docker镜像到远程仓库
  59. echo "开始推送Docker镜像到远程仓库..."
  60. docker push ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION}
  61. if [ $? -ne 0 ]; then
  62. echo "Docker镜像推送失败。退出脚本。"
  63. exit 1
  64. fi
  65. echo "Docker镜像推送完成"
  66. ;;
  67. 4)
  68. # 1. 编译Vue项目
  69. echo "开始编译bd-app-backend项目..."
  70. mvn clean install
  71. if [ $? -ne 0 ]; then
  72. echo "bd-app-backend项目编译失败。退出脚本。"
  73. exit 1
  74. fi
  75. echo "bd-app-backend项目编译完成"
  76. # 2. 构建Docker镜像
  77. echo "开始构建Docker镜像..."
  78. docker build -t ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION} .
  79. if [ $? -ne 0 ]; then
  80. echo "Docker镜像构建失败。退出脚本。"
  81. exit 1
  82. fi
  83. echo "Docker镜像构建完成"
  84. # 3. 推送Docker镜像到远程仓库
  85. echo "开始推送Docker镜像到远程仓库..."
  86. docker push ${REMOTE_REGISTRY}/${DOCKER_IMAGE_NAME}:v${NEXT_VERSION}
  87. if [ $? -ne 0 ]; then
  88. echo "Docker镜像推送失败。退出脚本。"
  89. exit 1
  90. fi
  91. echo "Docker镜像推送完成"
  92. ;;
  93. *)
  94. echo "无效的选项。退出脚本。"
  95. exit 1
  96. ;;
  97. esac
  98. echo "所有任务完成"