
2025 年 5 月 15 日,AWS宣布对其CodeBuild服务进行重大增强:Docker Server能力。这项新功能允许开发者在他们的 CodeBuild 项目中配置一个专用且持久的 Docker 服务器,旨在简化和加快 Docker 镜像的构建过程。
传统上,在 CI/CD 管道中构建 Docker 镜像可能很耗时,特别是处理多层镜像时。通过 Docker Server 功能,AWS 通过将镜像构建集中到远程主机来解决这一挑战。这种方法通过维护持久的 Docker 层缓存来减少等待时间并提高整体效率。实际上,AWS 报告称,使用这项功能时,构建时间大幅减少了。
持久的 Docker 服务器支持多个并发构建操作,所有构建都受益于共享的集中式缓存。这种设置不仅加速了构建过程,还确保了构建之间的一致性,这对于维护可靠的部署管道至关重要。
为了利用这种功能,开发者可以在他们的 CodeBuild 项目设置中启用 Docker Server 选项。一旦激活,CodeBuild 将为专用的 Docker 服务器提供持久存储,从而实现更快、更高效的构建。
要在 AWS CodeBuild 中设置新的 Docker Server 功能(详见AWS博客),首先要创建一个新的 CodeBuild 项目,或者在 AWS 管理控制台中编辑现有的项目。在环境配置中,选择“Managed image”并选择 Amazon Linux 2 作为操作系统。然后,在新的 Docker 配置部分(适用于支持的标准镜像,如 aws/codebuild/standard:7.0 或更高版本),启用“Docker Server mode”选项。这激活了一个轻量级的 Docker 守护进程,并且没有通常与 Docker-in-Docker(DinD)相关的性能缺陷。接下来,更新你的buildspec.yml文件以包含 Docker 命令——例如,构建和推送镜像到 Amazon ECR——就像你在本地 Docker 设置中所做的那样。
指南提醒你,要确保 CodeBuild 使用的 IAM 角色具有与 Amazon ECR 等服务交互的必要权限。配置好一切后,就可以触发构建了。
AWS CodeBuild 中引入的 Docker Server 功能在开发者和 DevOps 专业人士中引发了一些讨论。虽然大家对显著减少的构建时间表示赞赏,但目前它与基础设施即代码工具的集成方面存在限制。
例如,AWS Cloud Development Kit(CDK)存储库中的一个 GitHub 问题突出显示:
“到目前为止,AWS CDK 还不支持该功能,因为 CloudFormation 还没有公开它。CDK 只能在 CloudFormation 提供支持后才能提供支持。”
这表明,尽管这项功能很有前景,但在 CloudFormation 和 CDK 等工具中提供全面支持之前,它的采用可能会受到阻碍。
尽管存在这些集成上的挑战,Docker Server 功能因其性能改进而受到赞誉。在官方AWS博客文章中,Donnie Prakoso 分享了基准测试结果,表明使用此功能时,构建时间减少了 98%,从近 25 分钟减少到仅 16 秒。
这项新功能与现有解决方案竞争,如 Docker Inc 的Docker Build Cloud、GCP 的Cloud Build和 GitHub Actions Docker Layering。
AWS CodeBuild 的这项增强强调了 AWS 致力于提高开发者生产力和优化 CI/CD 工作流程的承诺。通过减少构建时间和简化镜像创建过程,Docker Server 功能使开发团队能够更快速、更可靠地部署应用程序。
原文链接:
评论