我使用 AWS CodePipeline 进行了自动构建,工作正常,但今天突然开始失败,并出现此奇怪的错误消息,我无法在任何地方了解发生了什么情况。
Container] 2017/12/26 16:42:52 Waiting for agent ping
[Container] 2017/12/26 16:42:52 Waiting for DOWNLOAD_SOURCE
[Container] 2017/12/26 16:42:53 Phase is DOWNLOAD_SOURCE
[Container] 2017/12/26 16:42:53 Runtime error (*exec.ExitError: exit status 1)
这是在
DOWNLOAD_SOURCE
阶段,这阻碍了我理解问题,因为这似乎是在AWS方面,而不是来自我的部署配置。
有人遇到同样的问题,或者知道如何解决问题本身吗?
谢谢!
我对这个完全相同的问题感到生气。如果您用 google 搜索 DOWNLOAD_SOURCE
"Runtime error (*exec.ExitError: exit status 1)"
,这是唯一的结果。
就我而言,问题是 zip 文件格式错误。
压缩源代码的正确方法是:
cd somedir ; zip -r ../zipped.zip . * ; cd ..
我正在使用:
zip -r bless_builder.zip somedir/*
在 aws codebuild 用户指南中,他们确实提到了它:
重要
不包含(根目录名称)目录,仅包含 (根目录名称)中包含的目录和文件 目录。
但我发誓他们至少可以在错误代码方面更有创意!
TLDR:检查您的环境变量以确保任何地方都没有冲突,尤其是您正在使用的基本 docker 映像和您在 codebuild 中设置的环境变量之间。对我来说,这是由于环境变量和它们在我的环境中加载的方式发生冲突。
代码构建团队需要在这里做得更好,显示实际错误是什么。你可以花无限多的时间去追寻问题的根源。
这不是我的情况,但 AWS 支持团队还建议再次尝试构建,因为它可能是暂时的,或者暂时切换到不同的源(同样,这不是我们的选择,因为我们使用 codepipeline 和 cdk ,所以一切都是自动编排的)。
这连续困扰了我几个小时,特别是因为我的场景错误是不确定的(有时它会起作用,而大多数时候它不会),所以当我运行它时,最初一切正常,然后编写了小代码之后发生了变化,我绞尽脑汁试图确定发生了什么变化。
就我而言,我使用的自定义基础映像具有预设的环境变量。为了让代码构建中的内容正常工作,我尝试在构建规范中执行以下操作来取消设置
BASH_ENV
,以便它不会与代码构建冲突,然后重置它,以便在构建过程中需要我的 BASH_ENV
安装阶段:
{
"version": "0.2",
"env": {
"variables": {
"BASH_ENV": ""
}
},
"phases": {
"install": {
"commands": ["export BASH_ENV=/usr/local/etc/bash_env", ...],
},
},
}
我最终不得不删除以下内容才能使其正常工作:
"env": {
"variables": {
"BASH_ENV": ""
}
}