BuildKit v0.20.0-rc1 发布:支持GPU设备与GitHub Actions缓存升级
BuildKit 是一个现代化的容器镜像构建工具包,它采用模块化设计,支持高效的缓存机制和并行构建,能够显著提升容器镜像构建的性能。作为 Docker 构建引擎的后继者,BuildKit 提供了更灵活、更高效的构建体验。
近日,BuildKit 发布了 v0.20.0-rc1 版本,这是即将发布的 v0.20.0 正式版的第一个候选版本。本次更新带来了多项重要改进和新功能,特别是在设备支持和缓存机制方面有显著增强。
核心功能更新
1. CDI设备支持(实验性功能)
本次版本最引人注目的新特性是增加了对 CDI(Container Device Interface)设备的支持。CDI 是一个标准化的设备接口规范,允许容器运行时动态地将设备(如GPU)注入到容器中。
在 BuildKit 中,这意味着构建步骤现在可以请求特定的设备资源。例如,在机器学习相关的构建过程中,可以直接使用GPU加速某些计算密集型任务。这一功能目前处于实验阶段,需要通过 Dockerfile 的"labs"通道启用。
2. GitHub Actions缓存后端升级
随着GitHub官方宣布将在2025年3月1日停止支持V1 API,BuildKit 及时更新了其GitHub Actions缓存后端,全面支持V2 API。这一变更确保了使用GitHub Actions作为缓存后端的用户能够无缝过渡到新API。
3. 历史记录API增强
历史记录API现在支持服务器端过滤和返回记录数量限制,这为管理大量构建记录提供了更好的控制和灵活性。用户现在可以根据特定条件筛选历史记录,并限制返回的结果数量,提高查询效率。
重要变更与修复
1. Azure远程缓存后端移除
由于依赖项问题,本版本暂时移除了对Azure远程缓存后端的支持。开发团队表示可能会在未来的版本中重新引入这一功能。
2. 嵌入式binfmt更新
内置的binfmt模拟器已升级至QEMU 9.2.0版本,这提高了跨架构构建的兼容性和性能。
3. 稳定性改进
- 修复了长时间构建中可能出现的凭据过期问题
- 解决了S3远程缓存后端可能导致的崩溃问题
- 修复了Bolt数据库中的记录泄漏问题
依赖项更新
BuildKit v0.20.0-rc1 更新了多个依赖库,包括:
- Azure SDK相关组件升级到最新版本
- containerd相关组件更新
- Docker CLI和引擎更新至27.5.1
- gRPC升级到1.69.4
总结
BuildKit v0.20.0-rc1 是一个功能丰富的预发布版本,特别是在设备支持和缓存机制方面带来了重要改进。CDI设备的支持为需要特殊硬件加速的构建场景开辟了新的可能性,而GitHub Actions缓存的升级则确保了与平台演进的兼容性。
对于生产环境用户,建议等待正式版发布后再进行升级。但对于希望体验新功能的开发者,这个候选版本已经提供了稳定可靠的功能预览。开发团队鼓励用户测试并反馈遇到的问题,以帮助完善即将发布的正式版本。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust098- DDeepSeek-V4-ProDeepSeek-V4-Pro(总参数 1.6 万亿,激活 49B)面向复杂推理和高级编程任务,在代码竞赛、数学推理、Agent 工作流等场景表现优异,性能接近国际前沿闭源模型。Python00
MiMo-V2.5-ProMiMo-V2.5-Pro作为旗舰模型,擅⻓处理复杂Agent任务,单次任务可完成近千次⼯具调⽤与⼗余轮上 下⽂压缩。Python00
GLM-5.1GLM-5.1是智谱迄今最智能的旗舰模型,也是目前全球最强的开源模型。GLM-5.1大大提高了代码能力,在完成长程任务方面提升尤为显著。和此前分钟级交互的模型不同,它能够在一次任务中独立、持续工作超过8小时,期间自主规划、执行、自我进化,最终交付完整的工程级成果。Jinja00
Kimi-K2.6Kimi K2.6 是一款开源的原生多模态智能体模型,在长程编码、编码驱动设计、主动自主执行以及群体任务编排等实用能力方面实现了显著提升。Python00
MiniMax-M2.7MiniMax-M2.7 是我们首个深度参与自身进化过程的模型。M2.7 具备构建复杂智能体应用框架的能力,能够借助智能体团队、复杂技能以及动态工具搜索,完成高度精细的生产力任务。Python00