我们(主要(将带有语义版本标签的docker映像(包含maven构建(推送到我们的Azure容器注册表(ACR(,例如my-cool-app:1.0.0-SNAPSHOT
。正如专家们所建议的那样,SNAPSHOT
是一个正在构建的工作,它可能随时被覆盖,也可能不被覆盖。。。
我正在考虑一个专用的ACR,它只用于生产环境。本ACR应仅包含已发布的图像,这意味着图像标签中不应包含SNAPSHOT
。如果有某种排序标记命名策略,除了锁定图像之外,基本上拒绝任何包含SNAPSHOT
的部署,我找不到任何有用的信息。是否没有办法在ACR上定义这样的规则,或者我们是否必须检查";以编程方式";在构建/发布管道中?
在将图像推送到容器注册表之前,没有任何文档具有命名策略,但为了解决此问题,您可以使用Content trust in Azure Container Registry
Azure Container Registry实现了Docker的内容信任模型,从而能够推动和拉动签名图像。这篇文章让你开始在容器注册表中启用内容信任。
作为图像发布者,内容信任允许您对推送到注册表的图像进行签名。图像的使用者(从注册表中提取图像的人员或系统(可以将其客户端配置为仅提取签名图像。当图像使用者提取签名图像时,他们的Docker客户端会验证图像的完整性。在这个模型中,消费者可以放心,您注册表中的签名图像确实是由您发布的,并且自发布以来没有进行过修改。
此内容信任将有助于拒绝在容器注册中推送图像,因为它们可能不是在生产环境或Azure Contaier Registry 中使用的签名图像
有关如何在容器注册表中分配AcrImageSigner
角色的更多信息,您可以参考此Mircosoft文档