From d4dc59af0fb4e324822e86337a3bffb968a63683 Mon Sep 17 00:00:00 2001 From: wangys <3401275564@qq.com> Date: Mon, 24 Nov 2025 13:50:17 +0800 Subject: [PATCH] =?UTF-8?q?build=E8=BF=9E=E7=BB=ADbuild=20save?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.sh | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/build.sh b/build.sh index eeaa0d6..7ce42d4 100644 --- a/build.sh +++ b/build.sh @@ -22,19 +22,21 @@ # all - 构建所有应用镜像(默认) # # 选项(options): -# build - 编译代码(serv和web需要) -# save - 保存镜像到tar文件(需要指定version) +# build - 编译代码(serv和web需要) +# save - 保存镜像到tar文件(配合build自动保存构建版本) +# save=YYYYMMDD_HHMMSS - 保存指定版本的镜像 # -# 版本(version): -# save=YYYYMMDD_HHMMSS - 指定要保存的镜像版本 -# 不指定则使用当前构建的版本 +# 保存规则: +# - build save → 自动保存刚构建的版本(推荐) +# - save=20251124_xxx → 保存指定版本(必须已存在) +# - 只使用save → 报错,必须指定版本 # # 示例: -# ./build.sh base-all # 构建所有基础镜像 -# ./build.sh serv build save # 编译后端+构建镜像+保存当前版本 -# ./build.sh all build save # 完整构建流程 -# ./build.sh serv save=20251124_143025 # 保存指定版本的镜像 -# ./build.sh all build save=20251124_150000 # 构建并保存为指定版本 +# ./build.sh base-all # 构建所有基础镜像 +# ./build.sh serv build save # 编译+构建+保存(自动使用构建版本)✅ +# ./build.sh all build save # 完整构建流程 +# ./build.sh serv save=20251124_143025 # 保存已存在的指定版本 +# ./build.sh serv save # ❌ 错误:必须指定版本 ############################################## set -e # 遇到错误立即退出 @@ -98,9 +100,27 @@ for arg in "$@"; do esac done -# 如果save时没有指定版本,使用当前时间戳 -if [ "${DO_SAVE}" = true ] && [ -z "${SAVE_VERSION}" ]; then - SAVE_VERSION="${IMAGE_VERSION}" +# 确定保存版本 +if [ "${DO_SAVE}" = true ]; then + if [ -z "${SAVE_VERSION}" ]; then + if [ "${DO_BUILD}" = true ]; then + # 如果有build参数,保存刚构建的版本 + SAVE_VERSION="${IMAGE_VERSION}" + else + # 如果没有build参数且未指定版本,提示错误 + echo "" + log_error "❌ 错误:只使用save时必须指定版本" + echo "" + echo "正确用法:" + echo " 1. 保存指定版本: ./build.sh ${BUILD_TARGET} save=20251124_143025" + echo " 2. 构建并保存: ./build.sh ${BUILD_TARGET} build save" + echo "" + echo "查看可用版本:" + echo " docker images | grep school-news" + echo "" + exit 1 + fi + fi fi echo "==========================================" @@ -111,7 +131,11 @@ log_info "构建版本: ${IMAGE_VERSION}" log_info "编译代码: ${DO_BUILD}" log_info "保存镜像: ${DO_SAVE}" if [ "${DO_SAVE}" = true ]; then - log_info "保存版本: ${SAVE_VERSION}" + if [ "${DO_BUILD}" = true ]; then + log_info "保存版本: ${SAVE_VERSION} (自动使用构建版本)" + else + log_info "保存版本: ${SAVE_VERSION} (指定版本)" + fi fi log_info "项目路径: ${PROJECT_ROOT}" echo "=========================================="