在 Azure DeVops 中为部署在 Kubernetes 上的 docker 个图像标记最佳实践
Tagging best practices in Azure DeVops for docker images deployed on Kubernetes
有没有人有构建和推送 docker 图像 + 通过 Azure DevOps 将它们部署到 AKS 的经验?
当我构建并推送图像时,我可以使用变量 $(Build.Repository.Name):$(Build.BuildId).
但是我的 .yaml
文件在我的发布管道中用于部署图像。我不能(或不知道如何)引用该变量 $(Build.Repository.Name):$(Build.BuildId)
.
有人有自动化这方面的经验吗?
如果您在发布管道上只有 1 个工件,那么您也可以在发布中以相同的方式使用变量 ($(Build.Repository.Name):$(Build.BuildId)
)。
如果您有超过 1 个工件,变量将引用您的主要工件:
如果你想将变量用于其他工件(不是主要的),你可以使用这种方式:
Release.Artifacts.{alias}.BuildId
{alias}
是工件的别名:
我是如何让它为我工作的是使用 "tokerisation of the yaml file"。
在构建过程中(构建并将图像推送到私有存储库,我使用 Azure Devops 中的默认变量 $(Build.BuidId) 作为 docker 图像的标记。
构建镜像任务
推送图片任务
在我引用的图像的部署 yaml 中:
然后在应用 yaml 文件之前进行部署,使用 kubectl 应用任务,我使用任务 "Replace tokens"。您可以指定要替换令牌的文件。由于我只为图像使用了令牌,所以我只选择了部署 yaml 文件。
它的作用是将 #{Release.Artifacts.acpyaml.BuildId}# 替换为上次构建的实际构建编号,因此当它开始拉取图像时,它具有正确的标签。
中描述的完整示例
有没有人有构建和推送 docker 图像 + 通过 Azure DevOps 将它们部署到 AKS 的经验?
当我构建并推送图像时,我可以使用变量 $(Build.Repository.Name):$(Build.BuildId).
但是我的 .yaml
文件在我的发布管道中用于部署图像。我不能(或不知道如何)引用该变量 $(Build.Repository.Name):$(Build.BuildId)
.
有人有自动化这方面的经验吗?
如果您在发布管道上只有 1 个工件,那么您也可以在发布中以相同的方式使用变量 ($(Build.Repository.Name):$(Build.BuildId)
)。
如果您有超过 1 个工件,变量将引用您的主要工件:
如果你想将变量用于其他工件(不是主要的),你可以使用这种方式:
Release.Artifacts.{alias}.BuildId
{alias}
是工件的别名:
我是如何让它为我工作的是使用 "tokerisation of the yaml file"。
在构建过程中(构建并将图像推送到私有存储库,我使用 Azure Devops 中的默认变量 $(Build.BuidId) 作为 docker 图像的标记。
构建镜像任务
推送图片任务
在我引用的图像的部署 yaml 中:
然后在应用 yaml 文件之前进行部署,使用 kubectl 应用任务,我使用任务 "Replace tokens"。您可以指定要替换令牌的文件。由于我只为图像使用了令牌,所以我只选择了部署 yaml 文件。
它的作用是将 #{Release.Artifacts.acpyaml.BuildId}# 替换为上次构建的实际构建编号,因此当它开始拉取图像时,它具有正确的标签。
中描述的完整示例