如何解决 AWS Elastic Beanstalk 中的“容器命令构建失败”一般错误?

Posted

技术标签:

【中文标题】如何解决 AWS Elastic Beanstalk 中的“容器命令构建失败”一般错误?【英文标题】:How do I troubleshoot 'Container commands build failed' generic error in AWS Elastic Beanstalk? 【发布时间】:2020-12-13 14:02:09 【问题描述】:

问题

我正在关注此AWS documentation 以在我的 Flask Elastic Beanstalk 环境中启用 HTTPS。当我按照概述的步骤操作时,我收到以下错误:

2020/08/24 21:30:04.183362 [INFO] Running command /bin/sh -c /opt/aws/bin/cfn-init -s 
       arn:aws:cloudformation:us-east-1:XXXXXXXXX:stack/awseb-e-XXXXXXXXX-stack/
       XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX-r AWSEBAutoScalingGroup --region us-east-1 
       --configsets Infra-EmbeddedPostBuild
2020/08/24 21:30:04.592591 [ERROR] An error occurred during execution of command 
       [app-deploy] - [PostBuildEbExtension]. Stop running the command. Error: Container 
       commands build failed. Please refer to /var/log/cfn-init.log for more details. 

我没有对我部署的 EC2 实例的 ssh 访问权限。我想知道如何解决这个特定问题,以及如何在 Elastic Beanstalk 中处理这种情况。

问题

    上面的Error: Container commands build failed 可能是什么问题? 如果出现此类问题,我该怎么做才能解决此类问题 我没有对我的 EC2 实例的 ssh 访问权限?有没有办法查看 这些cfn-init.log 文件?

上下文

如果我从源代码中排除此 02_https_instance.config 文件,该应用程序将完美运行。我想知道是否需要针对 Linux 2 更新 AWS 示例,因为他们建议的 mod24_ssl 适用于 Linux 1,而我必须在此版本中使用 mod_ssl (Reference)。是否需要其他代码更新才能完成这项工作?

【问题讨论】:

【参考方案1】:

什么问题可能导致上述错误:容器命令构建失败?

Container commands 是您的.ebextentions 中的一个部分。因此,container_commands 部分中定义的推荐似乎失败了。

如果我没有对我的 EC2 实例的 ssh 访问权限,我该怎么做才能解决此类问题?有没有办法查看这些 cfn-init.log 文件?

您可以从 EB 控制台下载所有日志文件:

您必须明确要求 EB 使用右侧的菜单获取文件。默认情况下,如果您不询问,日志面板将为空。

【讨论】:

以上是关于如何解决 AWS Elastic Beanstalk 中的“容器命令构建失败”一般错误?的主要内容,如果未能解决你的问题,请参考以下文章

如何解决 AWS Elastic Beanstalk Django 运行状况检查问题

更新 AWS Elastic Beanstalk 解决方案堆栈名称

如何从 aws-sdk 中的 s3 存储桶创建 Elastic Beanstalk 实例?

AWS Elastic beanstalk - 更改解决方案堆栈名称

AWS Elastic Beanstalk - 设置 JVM 选项(堆空间)

AWS API网关指向Elastic:访问密钥PHP