大家好,开篇之作,介绍下openshift的Build模块。
大家对K8s应该都很熟悉,openshift是基于k8s的一款开源的PASS平台,k8s能够对容器进行编排,运行container,而生成docker image是一项必须的工作,常用的制作docker image 的方式,一个是大家可以写Dockerfile,然后用docker build 生成image, 另一个就是运行一个base container 然后在container 完成修改,最后将commit container 生成image,对于开发人员来说,无论是写dockerfile还是后者,都是需要学习成本的,那么Openshift针对如何生成docker image有一套成熟的方案。
Openshift目前支持3种Build类型,详细可查询 文档 :
1. Source to image
这个方式,就是开发人员不需要写dockerfile,针对每一种开发语言openshift都有对应的builder image,每一个builder image包括最少两个脚本,一个是assemble ,完成代码编译工作,一个run用来作为image运行脚本,build的时候会用builder image启动一个container,在container 里完成代码编译生成可运行的文件,然后将container commit掉,生成可以运行的image,assemble会控制装配image的整个流程,Openshift是通过将source code 以stream的方式attach到container,需要builder image有tar package,若果没有,openshift 检测到后会采取layer build 的形式,生成一个Dockerfile,参用docker build,此外,社区还有许多image,通过onbuild的指令完成image生成,openshift同样对这些image做了兼容,具体流程请阅读 源码 。
2. Docker build
就是需要自己写Dockerfile了
3. Custom build
这个就是说客户科技自己定义build 逻辑,完成image的生成。详细参考 https://github.com/openshift/o ... ilder
Openshift Build是围绕BuildConfig template完成对build的定义,每种类型的BuildConfig定义大家都可以在 https://github.com/openshift/o ... e-app 找到,欢迎大伙儿使用Openshift。