41a736e6c7bc727cff1314c727702377911ce43f
通用构建推送脚本
build_push.sh 是一个通用的镜像编译和推送脚本,用于在 CI/CD 环境中构建和推送多架构 Docker 镜像到 SWR 注册表。
功能特性
- 支持多架构构建 (linux/amd64, linux/arm64)
- 支持 CI/CD 环境变量
- 自动处理标签(基于分支或标签)
- 支持 main 分支推送时添加 latest 标签
- 自动清理构建缓存及镜像
环境变量
以下环境变量需要在 CI/CD 环境中手动设置 (通过运行时的 Secrets 导入) :
SWR_REGISTRY: 镜像注册表地址SWR_USERNAME: 注册表用户名(从密钥获取)SWR_PASSWORD: 注册表密码(从密钥获取)
以下环境变量为 CI/CD 运行时自动设置:
CI_REPO_NAME: 仓库名称CI_COMMIT_TAG: 提交标签(可选,用于标签推送)CI_COMMIT_SHA: 提交 SHA(用于默认标签)CI_COMMIT_BRANCH: 提交分支(用于确定是否推送 latest 标签)
使用方法
在 CI/CD 配置中,将脚本复制到项目中并执行:
# 基于 Git Submodule 更新脚本
git submodule update --init --recursive
# 执行构建推送
sh .ci/common/build_push.sh
Git Submodule 集成
此脚本作为 Git Submodule 集成到项目中:
git submodule add https://git.colovu.com/docker/common.git .ci/common
错误处理
脚本会在以下情况退出:
- 必需的环境变量未设置
- 无法登录到镜像注册表
- 构建或推送失败
Languages
Shell
100%