一.说明
本软件是免费开源软件 bk-ci
的第三方插件,主要用于编译,推送,复制OCI容器镜像三项功能.
与本软件类似或同类的还有 drone-kaniko 和
action-kaniko 等
本软件主程序是一个命令行包装器,主要功能就是将蓝盾的外部输入转化为第三方外部依赖软件的输入. 其核心编译,推送,复制功能并不由本软件直接提供.
其中编译,推送功能由 kaniko 提供, 复制功能由 skopeo 提供.
本软件通过os.exec
或者生成myrun.sh
脚本来进行第三方外部依赖软件的调用实现最终编译,推送功能.
二.安装方法
1.获取源代码
源代码请固定存放到/data/landun/workspace/src/DockerBuildPushGo
否则请修改Makefile第一行的CURRENT_DIR
变量定义为实际路径
mkdir -p /data/landun/workspace/src/
cd /data/landun/workspace/src/
git clone https://github.com/ci-plugins/DockerBuildPush
cd /data/landun/workspace/src/
mv DockerBuildPush DockerBuildPushGo
cd /data/landun/workspace/src/DockerBuildPushGo
2.下载proot执行文件
这一步不是必须做在Makefile已有这个步骤,只是在网络不好或者下载不成功时进行手工确认.
curl -L -o ./bin_file/proot https://github.com/proot-me/proot/releases/download/v5.3.0/proot-v5.3.0-x86_64-static
chmod +x ./bin_file/proot
成功的话将在./bin_file/
目录生成proot
执行文件
3.构建DockerBuildPush主程序
执行2之前先确保./bin_file/proot
执行文件已经存在了
#./是项目源代码根目录
cd ./
make -f Makefile
成功的话将在当前目录的上两级目录生成app
(无扩展名)和task.json
文件.
../../bin/app
和../../bin/task.json
这一步结束时必须在 /data/landun/workspace/src/DockerBuildPushGo/bin_file目录下能看到三个文件 且文件大小不能是零字节或者出现目录名。不符合描述的文件都是前述步骤编译发生了意外,请进行检查. /data/landun/workspace/src/DockerBuildPushGo/bin_file/proot /data/landun/workspace/src/DockerBuildPushGo/bin_file/skopeo /data/landun/workspace/src/DockerBuildPushGo/bin_file/executor
4.打包插件
请把app和task.json打包到zip格式的根目录中.不要放在任何二级目录下.
cd ../../bin
zip -r ./app.zip app task.json
三.依赖情况
1.编译时第三方依赖
golang v1.18+
go.rice 固定v1.0.2 ,不需要单独安装
glibc-static v2.12+
gcc v4.8+
curl v7.2+
2.运行时第三方依赖
kaniko 固定v1.9.0
skopeo v1.5.2+
proot 固定v5.3.0