Docker Buildx -构建多平台映像比单平台慢得多



我们一直在使用docker构建我们的镜像。

使用Jenkins进行构建

docker build .构建大约需要5分钟。

然而,现在当使用docker buildx --platform linux/amd64, linux/arm64.构建过程要长得多,大约需要30分钟。根据我的理解,这是因为节点是amd64,它使用模拟器来构建arm64。

如何使更快

?我们的dockerfile中有npm install命令和一些shell命令

如果你可以从arm64ec2实例运行该命令,如Graviton,它将运行得更快。当我们在arm64上构建多拱映像时,我们可以在几分钟内构建,但是在amd64上做同样的事情时,根据映像的不同,可能需要半个多小时。不幸的是,arm64芯片似乎能够比amd64更好地处理多拱构建。

除了在单个主机上运行docker buildx之外,另一个选择是在它们的本机架构上快速构建两个映像,将生成的容器推送到repo,然后推送清单以将它们组合到一个多arch容器中。对于较大的构建,这可能是一种方法,而不是永远等待构建完成。

样本参考文献:

  • https://docs.aws.amazon.com/AmazonECR/latest/userguide/docker-push-multi-architecture-image.html
  • https://www.docker.com/blog/multi-arch-build-and-images-the-simple-way/

相关内容

  • 没有找到相关文章

最新更新