Hacker News

BuildKit:Docker 的隐藏宝石,几乎可以构建任何东西

了解 Docker 强大的构建引擎 BuildKit 如何将 CI/CD 构建时间缩短 50-70%。学习如何释放基本 docker 构建命令之外的全部潜力。

3 最小阅读量

Mewayz Team

Editorial Team

Hacker News

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) 生成等功能的基础,这些功能对供应链安全至关重要。

💡 您知道吗?

Mewayz在一个平台内替代8+种商业工具

CRM·发票·人力资源·项目·预订·电子商务·销售点·分析。永久免费套餐可用。

免费开始 →

缓存失效的工作原理也发生了概念上的转变。经典构建器使任何更改的指令下面的每一层都无效。 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 →

Frequently Asked Questions

Frequently Asked Questions

Frequently Asked Questions

Frequently Asked Questions

Frequently Asked Questions

Frequently Asked Questions

[Answer

Frequently 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

免费试用 Mewayz

集 CRM、发票、项目、人力资源等功能于一体的平台。无需信用卡。

立即开始更智能地管理您的业务

加入 30,000+ 家企业使用 Mewayz 专业开具发票、更快收款并减少追款时间。无需信用卡。

觉得这有用吗?分享一下。

准备好付诸实践了吗?

加入30,000+家使用Mewayz的企业。永久免费计划——无需信用卡。

开始免费试用 →

准备好采取行动了吗?

立即开始您的免费Mewayz试用

一体化商业平台。无需信用卡。

免费开始 →

14 天免费试用 · 无需信用卡 · 随时取消