首页
/ BuildKit v0.20.0 发布:容器构建工具的重大更新

BuildKit v0.20.0 发布:容器构建工具的重大更新

2025-06-07 00:38:34作者:丁柯新Fawn

BuildKit 是一个现代化的容器镜像构建工具,它作为 Docker 引擎的核心组件之一,提供了高效、灵活的构建能力。相比传统的构建方式,BuildKit 采用了更先进的架构设计,支持并行构建、增量构建等特性,大大提升了构建效率。最新发布的 v0.20.0 版本带来了一系列重要更新和改进。

核心特性更新

CDI 设备支持

v0.20.0 版本最引人注目的新特性是增加了对 CDI(Container Device Interface)设备的支持。CDI 是一个标准化的设备接口规范,允许容器运行时动态地将设备(如 GPU、FPGA 等)注入到容器中。在 BuildKit 中实现这一功能意味着:

  • 构建过程中可以直接使用 GPU 等加速设备
  • 在 Dockerfile 的 labs 通道中已经可以实验性地使用这一功能
  • 为机器学习、高性能计算等场景提供了更好的支持

这一功能的实现为需要特殊硬件支持的构建任务打开了大门,特别是在 AI/ML 工作流中,开发者现在可以直接在构建阶段利用 GPU 加速。

GitHub Actions 缓存后端升级

考虑到 GitHub 将在 2025 年 3 月 1 日停止支持 V1 API,BuildKit 及时更新了其 GitHub Actions 缓存后端以支持 V2 API。这一变更确保了:

  • 构建缓存功能在未来能够继续正常工作
  • 用户无需担心服务中断
  • 平滑过渡到新的 API 版本

对于持续集成/持续部署(CI/CD)流程来说,这一更新至关重要,因为构建缓存可以显著减少构建时间,提高开发效率。

性能与稳定性改进

历史记录 API 增强

新版本对历史记录 API 进行了重要改进:

  • 增加了服务器端过滤功能,用户可以更精确地查询构建历史
  • 支持限制返回的记录数量,避免不必要的数据传输
  • 提高了大规模部署下的查询效率

这些改进使得在管理大量构建记录时更加高效,特别是在企业级环境中。

底层组件更新

BuildKit v0.20.0 包含了多项底层组件的更新:

  • 将 Runc 升级到 v1.2.5 版本,提升了容器运行时的安全性和稳定性
  • 嵌入式 binfmt 模拟器更新到 QEMU v9.2.0,改善了跨平台构建的支持
  • 多项依赖库更新,包括 Azure SDK、containerd 相关组件等

这些底层更新虽然对终端用户不可见,但为系统的长期稳定运行奠定了基础。

问题修复

v0.20.0 版本修复了多个影响用户体验的问题:

  • 解决了长时间构建过程中凭证可能过期的问题
  • 修复了 S3 远程缓存后端可能导致的崩溃
  • 修正了 Bolt 数据库中的记录泄漏问题
  • 消除了特定平台子请求(如 check、outline)中的无效警告信息

这些问题修复提升了工具的可靠性和用户体验,特别是在复杂构建场景下。

技术细节

对于技术决策者和系统管理员,值得关注的依赖变更包括:

  • Azure SDK 多个组件升级,提升了云服务集成的稳定性
  • containerd 相关组件更新,增强了容器运行时功能
  • 新增了 go-deadlock 和 goid 等库,改进了并发控制
  • 多项 Golang 标准库更新,包括 sys、mod 等关键模块

这些变更反映了项目对安全性和性能的持续关注。

总结

BuildKit v0.20.0 是一个功能丰富且稳定的版本,特别值得关注的是 CDI 设备支持这一创新功能,它为容器构建开辟了新的可能性。对于已经在使用 BuildKit 的用户,建议尽快升级以获取更好的性能和安全性;对于新用户,现在是一个很好的时机开始评估这一现代化的构建工具。

随着容器技术的普及和复杂化,BuildKit 通过持续的创新和改进,正成为容器生态系统中的重要组成部分。v0.20.0 版本的发布再次证明了项目团队对技术卓越的追求和对用户需求的响应能力。

登录后查看全文
热门项目推荐
相关项目推荐

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
176
261
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
858
509
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
129
182
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
257
300
ShopXO开源商城ShopXO开源商城
🔥🔥🔥ShopXO企业级免费开源商城系统,可视化DIY拖拽装修、包含PC、H5、多端小程序(微信+支付宝+百度+头条&抖音+QQ+快手)、APP、多仓库、多商户、多门店、IM客服、进销存,遵循MIT开源协议发布、基于ThinkPHP8框架研发
JavaScript
93
15
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
331
1.08 K
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
397
370
note-gennote-gen
一款跨平台的 Markdown AI 笔记软件,致力于使用 AI 建立记录和写作的桥梁。
TSX
83
4
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.07 K
0
kernelkernel
deepin linux kernel
C
22
5