Codebuild 在 DOWNLOAD_SOURCE 阶段突然失败:SINGLE_BUILD_CONTAINER_DEAD

Posted

技术标签:

【中文标题】Codebuild 在 DOWNLOAD_SOURCE 阶段突然失败:SINGLE_BUILD_CONTAINER_DEAD【英文标题】:Codebuild suddenly fails in DOWNLOAD_SOURCE phase: SINGLE_BUILD_CONTAINER_DEAD 【发布时间】:2021-02-03 03:51:09 【问题描述】:

从今天开始,我们的 codebuild 项目已经停止工作了,该项目已经运行了好几个月并且没有修改过。 在 DOWNLOAD_SOURCE 阶段发生故障,并显示以下消息:

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

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

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

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

谢谢, 丹尼尔

【问题讨论】:

如果你去CW Logs,那里也没有什么? CB 控制台的日志通常落后于 CW 的日志。 没有日志甚至没有在 Cloudwatch 中创建,因为构建并没有真正开始 【参考方案1】:

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

解决方案

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

说明

不确定内部发生了什么变化,但克隆存储库时似乎存在某种超时,即使错误消息对此不清楚。 截至今天(2020 年 10 月 20 日),如果您有多个包含足够提交的存储库,则可以通过创建一个空的测试项目并包括 3 个附加源来重现此错误。在开始之前,构建将失败并显示相同的错误消息。

一旦我能够重现该问题,我就尝试摆弄克隆深度,它终于奏效了。同样,我不确定这是暂时的还是会修复,但截至昨天(2020-10-19),此解决方法没有必要。

【讨论】:

我的克隆深度是 1,我也收到此错误。似乎是一个非常普遍的错误。

以上是关于Codebuild 在 DOWNLOAD_SOURCE 阶段突然失败:SINGLE_BUILD_CONTAINER_DEAD的主要内容,如果未能解决你的问题,请参考以下文章

使用 AWS CDK 创建用于构建 Docker 映像的 CodeBuild 项目

如何在 CloudFormation 中使用 CodeBuild 的输出工件?

AWS codeBuild 不运行 .ebextension 配置

AWS CodeBuild 不生成构建文件夹 - NodeJS

在 AWS CodeBuild 中运行容器的权限错误

AWS CodeBuild - cd: can't cd to /codebuild/output/src... 错误和未找到工件路径