小编Her*_*oCC的帖子

将多个 docker 镜像推送到没有标签的清单

我有一个 GitLab CI 作业,它将同一应用程序的多个架构构建到 docker 映像中。我想将它们推送到 DockerHub,无需标记每个图像。这样我就可以将它们添加到清单中,而不会用一堆重复的图像污染标签目录。

例如——来自这组标签:

  • r1234(包含以下内容的清单)
  • r1234-amd64
  • r1234-arm64
  • r1234-armv7
  • r1234-gui(包含以下内容的清单,每个图像都基于上面的图像)
  • r1234-amd64-gui
  • r1234-arm64-gui
  • r1234-armv7-gui

对此:

  • r1234(包含相同图像的清单,没有标签)
  • r1234-gui(类似)

这是可能的吗?我现在制作了这段代码来推高标签并制作清单,但我不确定如何调整它。

- >
        for arch in $DEPLOY_ARCHS; do
          NEW_IMAGE_NAME="${REPO_PATH}:${REVISION}-${arch}${TAG_EXTRAS}"
          docker pull "${INDEV_IMAGE_NAME}-${arch}${TAG_EXTRAS}"
          docker tag "${INDEV_IMAGE_NAME}-${arch}${TAG_EXTRAS}" "${NEW_IMAGE_NAME}"
          docker push "${NEW_IMAGE_NAME}" # I want to be able to push to the manifest without tagging
          export IMAGES="$IMAGES ${NEW_IMAGE_NAME}"
        done
    - docker manifest create ${REPO_PATH}:${REVISION}${TAG_EXTRAS} ${IMAGES}
    - docker manifest push --purge ${REPO_PATH}:${REVISION}${TAG_EXTRAS}
Run Code Online (Sandbox Code Playgroud)

这是可能的吗?

continuous-integration containers docker dockerhub docker-registry

12
推荐指数
1
解决办法
240
查看次数