我在基于Kubernetes集群的CI-CD管道上工作。 管道运行如下:
现在,这些步骤的一部分并不需要推送图像。例如。可以随意缓存或处理构建器映像 - 如果需要,它将被重建。
因此这些图像的名称类似于mycompany/mvn-builder:latest
。
直接通过Docker使用时可以正常工作。
当Kubernetes和Helm来时,它想要图像URI,并尝试从远程仓库中获取它们。所以使用" local"名称mycompany/mvn-builder:latest
无效:
Error response from daemon: pull access denied for collab/collab-services-api-mvn-builder, repository does not exist or may require 'docker login'
从技术上讲,我可以将其命名为<AWS-repo-ID>/mvn-builder
并推送它,但这样就有可能在minikube
本地运行所有这些,因为很难对愚蠢的AWS进行身份验证12小时令牌(记住它全部在集群中运行)。
是否可以混合使用远程仓库和本地缓存?换句话说,我可以让Docker查看远程存储库,如果找不到或失败(见上文),它会采用缓存的图像吗?
因此,如果我在Kubernetes资源中使用foo/bar:latest
,它会尝试获取,发现它不能,并且会采用本地foo/bar:latest
?