需求
对于spring boot项目我们一般使用Maven或Gradle进行编译打包,也可以借助docker plugin进行镜像打包并push到远程仓库。因此在经过《应用上K8S第一步:Dockerfile参数化构建技巧》一文,我们已经确定了Dockerfile,那么应用上K8S第二步:gradle打包就可以开始了。
现在我们就来介绍下gradle打包,大家感兴趣的话也可以和maven打包对比下,并进一步掌握这两种方式。
gradle docker plugin
1.
「1.官方标准接入项目」
「2.自定义接入」
我们将应用名、JVM参数作为环境变量单独提取出来,用于docker参数化构建;也在后续在K8S中以configmap或env的形式进行参数传递。
注意:ARG只在Dockerfile中生效,且在docker build阶段生效。
「3.编译打包」
总结
相对于Maven打包过程,Gradle打包的配置更简单,但是其官网文档对gradle docker plugin的描述过于简单,导致某些更细节的配置摸索起来比较麻烦。
另,经过以上过程,我们需要对镜像打包过程定义一些规范,例如:
应用名不能够用大写;
镜像名及tag以应用名+版本号进行定义;
JVM参数根据实际情况需进一步拆分,以便后续通过环境变量进行参数化构建;
其他应用运行依赖的配置、数据等目录,需进一步定义;