我们正在设置CI / CD基础结构,以便将应用程序部署在openshift / kubernetes上。
我们正在使用jenkins
,fabric8
和helm
部署应用程序。
尽管如此,我们仍在创建其他种类的工件:init
和sidecar
图像。因此,我们的应用程序需要在主容器启动之前,这些图像在kubernetes / openshift注册表中可用。
当前,我们分别在openshift / kubernetes注册表中手动building
,tagging
和pushing
。
$ docker build .
$ docker tag image <registry>/image
$ docker push <registry>/image
我们想使这一过程自动化,我的意思是,我们真的希望避免执行这三个步骤,并且希望避免在jenkins从属服务器上配置docker客户端以进行推送。
我不知道我的解释是否很好。
答案 0 :(得分:0)
好吧,您将需要在docker上安装一台单独的计算机,该计算机仅用于构建和推送docker映像,并使用由jenkins触发的软件来执行该任务。但是我不知道有什么软件可以做到这一点。
我们的解决方案是将docker安装在jenkins节点上。构建本身被编写为管道,并以Jenkinsfile的形式提交到我们的scm中,步骤如下:
如果您不想在jenkins上使用docker而使用Java,则类似jib的方法可以解决问题。但是我不确定其他语言是否也存在这种情况。
更新:
感谢格雷厄姆斯的建议,您也可以结帐: