deploy.sh 2.9 KB

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