私有化云应用/云函数需求
层
方案:
- 将用户上传的层代码,使用stretch空镜像+用户代码,打成docker image
- 层的管理增删改查,对应docker image的操作。
- 当用户将业务代码和层绑定时候,对应多阶段构建镜像的方式打包。
实现:
- 定义clustertask,使用kaniko基础镜像,再用miniclient下载s3代码,然后docker 打包。Push到用户的私有仓库
- 使用docker client sdk进行image的增删改查操作
使用mysql维护用户代码和层的绑定关系,并且记录优先顺序。用户构建版本时,取出用户业务代码中的dockerfile文件,在from或者workdir之后,按顺序追加多个from镜像,每一步copy到当前目录(或者和用户约定目录位置),多阶段构建的方式。然后使用现有的clustertask模版,直接构建新镜像即可。
- 用户下载层代码,对应从docker image复制出镜像(或者使用cos再存储一份,然后从cos下载。需要保持两者代码一致)