Codebuild 在 DOWNLOAD_SOURCE 阶段突然失败:SINGLE_BUILD_CONTAINER_DEAD

Codebuild suddenly fails in DOWNLOAD_SOURCE phase: SINGLE_BUILD_CONTAINER_DEAD

从今天开始,我们的 codebuild 项目停止工作了,这个项目已经完美运行了几个月而且没有修改。 DOWNLOAD_SOURCE 阶段发生故障,并显示此消息:

"SINGLE_BUILD_CONTAINER_DEAD: 构建容器在完成构建之前发现已死。构建容器因内存不足或 Docker 图像不受支持而死亡。"

应用程序代码托管在 CodeCommit 上。 我们没有对 buildspec 文件做任何修改,昨天同样的构建甚至还在工作。

我们使用的是aws/codebuild/amazonlinux2-x86_64-standard:2.0镜像,没有做任何修改,今天突然出现故障。在之前的构建过程中,该作业最多使用了 20% 的可用内存 (15GB)。构建环境仍然是 Linux,如预期和应有的那样。 遗憾的是,没有任何记录,因为它甚至在处理构建规范的第一个命令之前就失败了,因此很难调试。

有人知道是什么原因造成的吗?

谢谢, 丹尼尔

所以我终于通过创建一些测试版本找到了原因,所以我在下面分享我找到的解决方案。

解决方案

如果您的构建项目使用多个源,请确保将所有源的 Git 克隆深度设置为 1
Git 克隆深度默认为“完整”,因此如果您使用 CloudFormation 构建了项目,请确保在您的模板 SecondarySources 列表中包含 GitCloneDepth: 1

说明

不确定内部发生了什么变化,但克隆存储库时似乎出现了某种超时,尽管错误消息并不清楚。
从今天 (2020-10-20) 开始,如果您有多个包含足够提交的存储库,通过创建一个空的测试项目并包括 3 个额外的源,这个错误是可以重现的。构建将在开始前失败并显示相同的错误消息。

在我能够重现该问题后,我尝试摆弄克隆深度,它终于奏效了。同样,我不确定这是暂时的还是会被修复,但从昨天 (2020-10-19) 开始,这种解决方法是不必要的。