build连续build save

This commit is contained in:
2025-11-24 13:50:17 +08:00
parent 034b281b9e
commit d4dc59af0f

View File

@@ -22,19 +22,21 @@
# all - 构建所有应用镜像(默认) # all - 构建所有应用镜像(默认)
# #
# 选项(options) # 选项(options)
# build - 编译代码serv和web需要 # build - 编译代码serv和web需要
# save - 保存镜像到tar文件需要指定version # save - 保存镜像到tar文件配合build自动保存构建版本
# save=YYYYMMDD_HHMMSS - 保存指定版本的镜像
# #
# 版本(version) # 保存规则
# save=YYYYMMDD_HHMMSS - 指定要保存的镜像版本 # - build save → 自动保存刚构建的版本(推荐)
# 不指定则使用当前构建的版本 # - save=20251124_xxx → 保存指定版本(必须已存在)
# - 只使用save → 报错,必须指定版本
# #
# 示例: # 示例:
# ./build.sh base-all # 构建所有基础镜像 # ./build.sh base-all # 构建所有基础镜像
# ./build.sh serv build save # 编译后端+构建镜像+保存当前版本 # ./build.sh serv build save # 编译+构建+保存(自动使用构建版本)✅
# ./build.sh all build save # 完整构建流程 # ./build.sh all build save # 完整构建流程
# ./build.sh serv save=20251124_143025 # 保存指定版本的镜像 # ./build.sh serv save=20251124_143025 # 保存已存在的指定版本
# ./build.sh all build save=20251124_150000 # 构建并保存为指定版本 # ./build.sh serv save # ❌ 错误:必须指定版本
############################################## ##############################################
set -e # 遇到错误立即退出 set -e # 遇到错误立即退出
@@ -98,9 +100,27 @@ for arg in "$@"; do
esac esac
done done
# 如果save时没有指定版本使用当前时间戳 # 确定保存版本
if [ "${DO_SAVE}" = true ] && [ -z "${SAVE_VERSION}" ]; then if [ "${DO_SAVE}" = true ]; then
SAVE_VERSION="${IMAGE_VERSION}" 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 fi
echo "==========================================" echo "=========================================="
@@ -111,7 +131,11 @@ log_info "构建版本: ${IMAGE_VERSION}"
log_info "编译代码: ${DO_BUILD}" log_info "编译代码: ${DO_BUILD}"
log_info "保存镜像: ${DO_SAVE}" log_info "保存镜像: ${DO_SAVE}"
if [ "${DO_SAVE}" = true ]; then 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 fi
log_info "项目路径: ${PROJECT_ROOT}" log_info "项目路径: ${PROJECT_ROOT}"
echo "==========================================" echo "=========================================="