You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写用于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 07:09:11