基础镜像的继承管理和如何处理多个技术栈的应用版本?

有两个问题,基础镜像的继承管理和如何处理多个技术栈的应用版本。举个例子,我们对于CentOS 7,做了公司级别的基础OS镜像A,基于这个镜像加入了JDK成为镜像B,基于B加入了JBOSS成为C,在C的基础上再构建项目的APP镜像D。问题来了:1,有没有办法针对A镜像修改了,B,C和D去级连更新。2,由于...显示全部

有两个问题,基础镜像的继承管理和如何处理多个技术栈的应用版本。举个例子,我们对于CentOS 7,做了公司级别的基础OS镜像A,基于这个镜像加入了JDK成为镜像B,基于B加入了JBOSS成为C,在C的基础上再构建项目的APP镜像D。
问题来了:1,有没有办法针对A镜像修改了,B,C和D去级连更新。
2,由于是继承关系,各层软件的版本不同,导致镜像种类就特别多,例如JDK有3种,jboss有三种,那么镜像C就有九种,技术栈深了,命名又成为了问题。

求指导解决思路?

收起
参与7

查看其它 2 个回答linux_zcy的回答

linux_zcylinux_zcy技术总监希云cSphere

你的提的这个问题非常好,这个问题是每个企业中大量使用容器的时候都会遇到的。

第一个问题:针对A镜像修改了,B,C和D去级连更新。
提到容器大家都在提持续集成持续部署CI/CD,每个镜像都是由Dockerfile来定义,最终执行docker build命令来镜像构建。推荐选择1-2台服务器专门用来做应用镜像的构建,避免在运行业务容器的服务器上构建镜像影响业务。

系统架构:gitlab存放dockerfile--jenkins job1(A镜像)---jenkins job2(等A构建完成后构建B)--- jenkins job3(等B构建完成后构建C)依次类推......

第二个问题:由于是继承关系,各层软件的版本不同,导致镜像种类就特别多,例如JDK有3种,jboss有三种,那么镜像C就有九种,技术栈深了,命名又成为了问题。

镜像树是这样:baseos--jdk--jboss\tomcat\weblogic---applications,因为dockerfile在gitlab中进行管理,所以不妨你在增加一个文件IMAGE_VERSION=xxdocker build时可以取这个文件中的值,版本号你可以取jboss的版本号(在dockerfile中增加一个EVN jboss-version=xxx就行)。这样即使后面有再多的镜像命名都很好管理了,提前规划好是非常有必要的。

互联网服务 · 2017-06-30
浏览3675

回答者

linux_zcy
技术总监希云cSphere
擅长领域: 云计算容器容器云

linux_zcy 最近回答过的问题

回答状态

  • 发布时间:2017-06-30
  • 关注会员:4 人
  • 回答浏览:3675
  • X社区推广