如何编写用于Azure容器注册表的Docker镜像Dev到Stage晋升脚本?
Docker镜像从Dev环境到Azure Stage环境注册表的晋升脚本
前提条件
- 已安装Docker客户端并可正常运行
- 已安装Azure CLI并完成登录(
az login) - 拥有Dev容器注册表的拉取权限,以及Stage容器注册表的推送权限
完整脚本
#!/bin/bash # 配置参数,根据实际环境修改 DEV_REGISTRY="dev-registry.example.com" STAGE_REGISTRY="stageacr.azurecr.io" IMAGE_NAME="my-app" IMAGE_TAG="v1.0.0" # 登录Dev容器注册表(私有注册表需输入账号密码) echo "登录Dev容器注册表..." docker login $DEV_REGISTRY # 登录Azure Stage容器注册表 echo "登录Azure Stage容器注册表..." az acr login --name $(echo $STAGE_REGISTRY | cut -d'.' -f1) # 拉取Dev环境的镜像 echo "拉取Dev环境镜像..." docker pull $DEV_REGISTRY/$IMAGE_NAME:$IMAGE_TAG # 为镜像添加Stage注册表的标签 echo "为镜像添加Stage环境标签..." docker tag $DEV_REGISTRY/$IMAGE_NAME:$IMAGE_TAG $STAGE_REGISTRY/$IMAGE_NAME:$IMAGE_TAG # 推送镜像到Stage注册表 echo "推送镜像到Stage环境注册表..." docker push $STAGE_REGISTRY/$IMAGE_NAME:$IMAGE_TAG # 可选:清理本地拉取和打标的镜像,节省磁盘空间 echo "清理本地镜像..." docker rmi $DEV_REGISTRY/$IMAGE_NAME:$IMAGE_TAG docker rmi $STAGE_REGISTRY/$IMAGE_NAME:$IMAGE_TAG echo "镜像晋升完成!"
脚本说明
- 参数配置:开头的变量需替换为实际的注册表地址、镜像名称和版本标签
- 登录认证:私有Dev注册表需手动输入账号密码,Azure ACR通过
az acr login自动完成认证 - 镜像操作:拉取→打标→推送是镜像跨注册表迁移的标准流程
- 本地清理:可选步骤,若无需保留本地镜像可启用,避免占用磁盘空间
注意事项
- 如果Dev注册表也是Azure ACR,可替换
docker login为az acr login - 生产环境建议添加
set -e开启错误捕获,遇到异常立即终止脚本 - 可增加参数校验逻辑,比如检查必填变量是否为空,避免无效执行
内容的提问来源于stack exchange,提问作者Ibene Liz Mathew
相关产品推荐
相关产品推荐

