BuildKit:Docker 的隐藏宝石,几乎可以构建任何东西
了解 Docker 强大的构建引擎 BuildKit 如何将 CI/CD 构建时间缩短 50-70%。学习如何释放基本 docker 构建命令之外的全部潜力。
Mewayz Team
Editorial Team
BuildKit:Docker 的隐藏宝石,几乎可以构建任何东西
大多数开发人员都知道 Docker 是改变软件交付方式的容器运行时。很少有人知道这个引擎在每个现代 Docker 构建的表面下静静地嗡嗡作响——BuildKit,这是下一代构建系统,自 18.09 版本以来一直随 Docker 一起发布,并成为 Docker 23.0 中的默认后端。尽管工程师们对 Kubernetes 配置和微服务模式争论不休,但 BuildKit 一直在稳步发展成为 DevOps 生态系统中最强大、最灵活的构建系统之一。如果您一直将其视为更快的 docker 构建,那么您就会留下巨大的功能。运行高吞吐量 CI/CD 管道的公司只需了解 BuildKit 实际提供的功能即可将构建时间缩短 50-70% — 而这仅仅是开始。
是什么让 BuildKit 与经典构建器有根本不同
最初的 Docker 构建引擎按顺序执行 Dockerfile 指令,一次一层,不知道哪些工作可以安全地并行发生。 BuildKit 用有向无环图 (DAG) 取代了线性执行模型,这是一个依赖图,可以了解哪些构建步骤相互依赖,哪些不相互依赖。独立的阶段同时执行,未使用的阶段被完全跳过,整个构建成为您想要的内容的声明性描述,而不是您必须以正确的顺序背诵的命令性步骤序列。
这种架构转变所带来的实际影响超出了速度的范围。当多阶段 Dockerfile 在一个阶段编译 Go 二进制文件,在另一个阶段下载 Node.js 依赖项,并在第三个阶段组装生产映像时,BuildKit 可以同时运行前两个阶段。以前在强大的 CI 运行程序上需要四分钟的构建现在可以在九十秒内完成。 Stripe、Shopify 和许多其他大型工程团队在其内部工具回顾中记录了类似的收获。 DAG 模型还意味着 BuildKit 可以生成高度准确的构建元数据,这是来源证明和软件物料清单 (SBOM) 生成等功能的基础,这些功能对供应链安全至关重要。
缓存失效的工作原理也发生了概念上的转变。经典构建器使任何更改的指令下面的每一层都无效。 BuildKit 跟踪每个输入的内容哈希值,因此更改 Dockerfile 中的注释不会破坏代表三十分钟编译的缓存条目。当您的构建缓存对于工程团队来说是五分钟和四十分钟的反馈循环之间的差异时,这种精度比最初看起来更重要。
多平台构建:一个命令,每种架构
BuildKit 的 --platform 标志和 QEMU 集成将曾经令人痛苦的多系统协调问题转变为单个命令。运行 docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 。通过一次构建调用并行生成三个生产就绪映像。随着行业转向 ARM,这一功能变得至关重要 — AWS Graviton3 实例在 Web 服务和数据处理等工作负载上始终提供 40% 更高的性价比,而 Apple Silicon 已使 ARM 成为数百万工程师的默认开发机器。
在 BuildKit 的多平台支持成熟之前,为不同的架构维护单独的构建管道是一个真正的成本中心。团队要么维护多个 Dockerfile,在不同架构的运行器上运行单独的 CI 管道,要么只是将 x86 映像发送到各处,并在 ARM 基础设施上付出性能损失。使用 BuildKit,您只需定义一次构建,即可让系统透明地处理特定于体系结构的编译。需要交叉编译的 Rust 项目、具有 CGO 依赖项的 Go 项目、具有 C 扩展的 Python 包
Ready to Simplify Your Operations?
Whether you need CRM, invoicing, HR, or all 207 modules — Mewayz has you covered. 138K+ businesses already made the switch.
Get Started Free →Related Posts
- 从搜索中删除露骨图片的更简单方法
- 显示 HN:VOOG – 使用 Python 和 tkinter GUI 的 Moog 风格复调合成器
- DJB的密码学奇旅:从代码英雄到标准批评者
- 长鑫存储一直以大约当前市场价格一半的价格提供 DDR4 芯片
Frequently Asked Questions
Frequently Asked Questions
Frequently Asked Questions
Frequently Asked Questions
Frequently Asked Questions
Frequently Asked Questions
[AnswerFrequently Asked Questions
Frequently Asked Questions
Frequently Asked Questions
About
Frequently Asked Questions
[Answer
Frequently Asked Questions
Answer
Frequently Asked Questions
Answers
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
[Answer
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
Frequently Asked Questions
Answers
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
[Answer
Ask an Expert
[Answer
[Answer
[Answer
Ask an Expert
[Answer
[Answer
Ask an Expert
获取更多类似的文章
每周商业提示和产品更新。永远免费。
您已订阅!