isula-build代码解析

本文基于 https://openeuler.org/zh/blog/DCCooper/2020-09-15-isula-build-code-exploration.html博客

以及https://www.bilibili.com/video/BV1Ca4y177te视频

目的是个人总结isula-build代码运行流程,方便日后复习。也希望能对想参加isula-build构建的朋友带来一点方便

例子:isula-build ctr-img build –f Dockerfile –o docker-archive:busybox.tar:busybox:latest .

isula_build_code_exploration_core

我们跟着这个流程图来走

在我们在命令行敲完

isula-build ctr-img build –f Dockerfile –o docker-archive:busybox.tar:busybox:latest .

之后:

首先找到程序的入口(cmd/cli/main.go)可以发现,main函数很简洁,我们看一下 newCliCommand()做了什么

在这里插入图片描述

进入addCommands()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DbjZqqdL-1628481422245)(C:\Users\Crescent_P\AppData\Roaming\Typora\typora-user-images\image-20210809104952509.png)]

可以看到addCommands()里面的代码,如果使用过isula-build的朋友会发现,这个和isula-build -h出来的帮助文档很相似

在这里插入图片描述

isula-build -h

我们从逐个排除的方法,能猜到 addCCommands()中的NewContainerImageBuildCmd就是对应了ctr-img

想一想我们要研究的代码isula-build ctr-img build –f Dockerfile –o docker-archive:busybox.tar:busybox:latest .

里面就有crt-img 那么我们就点入NewContainerImageBuildCmd看一下

在这里插入图片描述

这个时候我们又可以发现,这个不就和isula-build ctr-img -h出来的帮助文档一样嘛?

isula-build ctr-img -h

在这里插入图片描述

那么根据我们的命令isula-build ctr-img build –f Dockerfile –o docker-archive:busybox.tar:busybox:latest .,很明显,要进入NewBuildCmd()

在这里插入图片描述

我们进入 buildCommand

在这里插入图片描述

我们进入到 runBuild()

在这里插入图片描述

那么isula-builder是从哪接受isula-build传来的信息的呢?

我们一步一步来看,首先进入isula-builder的入口(cmd/deamon/main.go)

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值