docker打包工具—— kaniko

前段时间将jenkins切换到serverless,原本都是基于docker 挂载sock文件进行构建的,然后上了serverless之后发现没有物理节点了,也不能使用docker这种方式。还好google提供了一种不需要特权就可以构建的docker镜像构建工具kaniko

https://github.com/GoogleContainerTools/kaniko

使用方式很简单,我在jenkinsfile里面是这么使用的

/kaniko/executor --force --cache=true --cache-dir=/cache -c `pwd` --dockerfile=./Dockerfile --destination=${image}:latest

但是遇到一个问题,每次镜像都需要重新拉取,即使我设置了--cache=true这个目录,也没有任何缓存数据保存做下来,后来发现这个缓存只是使用缓存,而自己无法主动缓存

官方文档中说明了缓存基础镜像
https://github.com/GoogleContainerTools/kaniko#caching

如下命令就可以了,实际使用的时候需要加-f选项才会在缓存目录缓存基础镜像,直接启动debug镜像,手动缓存基础镜像就可以了

warmer:latest --cache-dir=/cache --image=<image to cache>

一个镜像会在目录下保存2个问题,一个是json的描述文件


image.png

官方提供了debug镜像 ,有个小技巧,gcr.io的镜像可以使用微软的国内源
http://mirror.azure.cn/help/gcr-proxy-cache.html

gcr.io/kaniko-project/executor:debug
gcr.azk8s.cn/kaniko-project/executor:debug
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容