从注册表Y向注册表X拉,标记和推送图像

时间:2019-02-27 20:40:59

标签: kubernetes continuous-integration docker-registry jib kaniko

当前,我们的CI / CD环境是基于Kubernetes的云。 由于性能优势,Kubernetes Cloud Providers最近删除了docker deamon。例如,Google Kubernetes Engine或IBM Cloud Kubernetes仅具有容器化运行时,以运行,而不能构建容器映像。

kanikojib之类的许多工具可解决此问题。它们提供了一种有效地构建docker映像的方法,而无需docker deamon。

这是问题所在:

  1. 图像“ registry-x.com/repo/app1:v1-snapshot”从CI中的臂架构建到Registry-x。
  2. 然后在某个时间点部署并测试“ registry-x.com/repo/app1:v1-snapshot”映像,如果测试成功并且需要标记,则需要将其交付给注册表Y作为注册表X中的稳定版本。

因此,需要将图像“ registry-x.com/repo/app1:v1-snapshot”从“ registry-x.com/repo/app1:v1-snapshot”标记为“ registry-x.com/web/ app1:v1-release”,然后另外需要用“ registry-y.com/web/app1:v1-release”标记,并且都需要推送。

结果:两个注册中心都提供带有发行标签的开发快照图像。

那么,如何在没有docker deamon的情况下执行这3个简单的操作(拉,标签,推)?好像kaniko和jib都不是办法。

我不想订购虚拟机只是为了让docker deamon进行这些操作。我也知道Jib可以推动多个注册管理机构。但是它不能只重命名图像。

还与去年的该问题有关: Clone an image from a docker registry to another

关于莱昂

1 个答案:

答案 0 :(得分:2)

Docker Registry提供了HTTP API,因此您可以使用那些方法来拉入和推入图像。

有几个库在其上提供了更高的抽象层(docker-registry-client in Godocker-registry-client in Js等)。

无论如何,流将是

相关问题