如何在发布候选构建后保留docker映像,以备将来推送至产品注册表



在我们的QA(想想"stage"(环境的候选发布管道中,我们使用vmImage构建我们的docker容器,然后将其推送到我们的Non-Prod注册表。

pool:
vmImage: "ubuntu-latest"
steps:
- task: pseudo-code: ## get everything prepped for buildAndPush
- task: Docker@2
inputs:
containerRegistry: "Our Non-Prod Registroy"
repository: "apps/app-name"
command: "buildAndPush"
Dockerfile: "**/Dockerfile"
tags: |
$(Build.SourceBranchName)

这些是发布候选者。一旦代码被批准发布,我们希望将相同的容器推送到我们的生产注册中心;然而,我们不知道如何在这个框架中做到这一点。看来我们只有两个选择:

  • 稍后在不同的管道运行中重建它,这将把它推送到我们的生产注册表
  • 将每个候选发布容器推送到我们的生产注册中心

这两个选项我都不喜欢。我想要的是一种将容器保留在某个地方的方法,然后在我们决定要发布它时将其推送到我们的生产注册中心。

我们该怎么做?

您实际上可以

  1. 将docker映像推送到非生产注册表
  2. 一旦你的它被批准发布(我不知道你在你的管道上说这句话到底是什么意思(,你就可以(请检查这个主题(

您可以提取图像,对其进行标记并将其推送到新的注册表。

docker pull old-registry/app
docker tag old-registry/app new-registry/app
docker push new-registry/app

你们也可以在这里看看上面的例子。

最新更新