助力信创:使用建木快速构建多架构OCI镜像

DevOps

共 1849字,需浏览 4分钟

 ·

2022-11-24 23:43


来源: 开源建木+
作者:shaojiacheng


起因



随着国产cpu的发展以及苹果推出m芯片,越来越多的产品不得不考虑自身对arm架构的兼容,前不久有个同事火急火燎找我说,“你有arm架构的服务器吗,软件需要做一个认证,需要部署在arm服务器上,但我们的镜像都是amd64架构的,需要在arm服务器上重新构建一遍”,听了他的诉求后,我想了想,“虽然我没有arm的服务器,但是我们可以试试建木”,于是我们就探究起用建木编译arm架构镜像的方法。


节点介绍



建木的docker_image_build节点前不久新推出了1.3.1版本,通过buildx来支持构建不同cpu体系结构的镜像,只需要根据要求配置platform参数即可,不过,由于buildx本身的原因,该节点有以下使用限制:

  1. 由于buildx是docker在19.03版本中引入的特性,所以使用前需确保worker所在的docker版本>=19.03;

  2. 使用buildx需要在docker服务端开启实验室特性,从 20.10 版本开始,Docker CLI 所有实验特性的命令均默认开启,无需再进行配置或设置系统环境变量;

  3. buildx通过在内核中使用 QEMU 仿真支持来进行多架构镜像构建,需要宿主机支持qeum并确保内核>=4.8;

  4. 需要具备访问dockerhub的条件以下载用于多平台镜像构建的模拟器,或自行下载后手动导入;

  5. 需要确保base的镜像支持指定的架构。


开始编译



准备就绪后,我们开始了尝试,在建木上新建图形项目,选择git_clone节点拉取项目文件后,调用docker_image_build:1.3.1节点来构建amd64和arm64的镜像。


结果



过程十分顺利,短短2分钟后流程便执行完毕,同事拿到了镜像之后,连连竖起大拇指,我则趁机给他安利起了这北半球第二好用的ci/cd平台。

#WAVE SUMMIT+2022深度学习开发者峰会来啦!

IDCF专区线上还有席位,现在报名,还能领取专属礼品赶紧扫码上车~👇 

浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报