1

我正在尝试将图像从一个 acr 移动到另一个 acr。(也请建议任何替代方法)

我正在使用 shell 脚本,并且我已经为一个图像声明了变量来测试它(但是我有 20 多个图像)“sourceacr”image="myimage" minimum_version="1.0.0""targetacr"

遵循的步骤:

docker pull $sourceacr/image --all-tags

然后从最低版本开始过滤,重新标记并推送到目标 acr

我的命令是

docker images $sourceacr/$image --filter "since=$sourceacr/$image:$minimum_version" --format "docker tag {{.Repository}}:{{.Tag}} $targetacr/$image:{{.Tag}} | docker push $targetacr/$image:{{.Tag}}"

我将输出作为在 --format 选项之后使用的命令,但它不执行标记和推送命令。任何帮助表示赞赏!

电流输出:

docker tag source.azurecr.io/myimage:1.0.0 target.azureacr.io/myimage:1.0.0 | docker push target.azureacr.io/myimage:1.0.0
4

1 回答 1

0

你有你的命令的方式,它基本上是在终端中输出 docker 命令。您需要将它们作为命令执行,尝试如下:

docker images $sourceacr/$image  --filter "since=$sourceacr/$image:$minimum_version" --format "docker tag {{.Repository}}:{{.Tag}} $targetacr/$image:{{.Tag}} | docker push $targetacr/$image:{{.Tag}}" | bash

或使用外壳:

docker images $sourceacr/$image  --filter "since=$sourceacr/$image:$minimum_version" --format "docker tag {{.Repository}}:{{.Tag}} $targetacr/$image:{{.Tag}} | docker push $targetacr/$image:{{.Tag}}" | sh
于 2021-07-29T15:51:04.897 回答