【问题标题】:ElasticBeanstalk, deployment error: Command hooks (directoryHooksExecutor.py --path /opt/elasticbeanstalk/hooks/appdeploy/pre/) failedElasticBeanstalk,部署错误:命令挂钩(directoryHooksExecutor.py --path /opt/elasticbeanstalk/hooks/appdeploy/pre/)失败
【发布时间】:2014-07-09 10:20:15
【问题描述】:

得到这个错误:

Command hooks (directoryHooksExecutor.py --path /opt/elasticbeanstalk/hooks/appdeploy/pre/) failed

在尝试通过 git aws.push 进行部署之后。

部署没有通过,抛出的事件是:

2014-05-20 15:41:46 UTC-0700 错误 [实例:i-808b90df 模块: AWSEBAutoScalingGroup ConfigSet: null] 命令在实例上失败。 返回代码:1 输出:构建期间发生错误:命令挂钩 失败的 。 2014-05-20 15:41:43 UTC-0700 错误脚本 /opt/elasticbeanstalk/hooks/appdeploy/pre/10_bundle_install.sh 失败 返回码 1

这是错误日志:

2014-05-20 22:41:43,767 [ERROR] Command hooks (directoryHooksExecutor.py --path /opt/elasticbeanstalk/hooks/appdeploy/pre/) failed
2014-05-20 22:41:43,768 [DEBUG] Command hooks output: 
2014-05-20 22:41:43,768 [ERROR] Error encountered during build of Hook-PreAppDeploy: Command hooks failed
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 511, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 247, in build
    changes['commands'] = CommandTool().apply(self._config.commands)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/command_tool.py", line 113, in apply
    raise ToolError(u"Command %s failed" % name)
ToolError: Command hooks failed
2014-05-20 22:41:43,795 [ERROR] Unhandled exception during build: Command hooks failed
Traceback (most recent call last):
  File "/opt/aws/bin/cfn-init", line 122, in <module>
    worklog.build(detail.metadata, configSets)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 117, in build
    Contractor(metadata).build(configSets, self)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 502, in build
    self.run_config(config, worklog)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 511, in run_config
    CloudFormationCarpenter(config, self._auth_config).build(worklog)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/construction.py", line 247, in build
    changes['commands'] = CommandTool().apply(self._config.commands)
  File "/usr/lib/python2.6/site-packages/cfnbootstrap/command_tool.py", line 113, in apply
    raise ToolError(u"Command %s failed" % name)
ToolError: Command hooks failed
2014-05-20 23:35:04,652 [DEBUG] CloudFormation client initialized with endpoint https://cloudformation.us-west-1.amazonaws.com
2014-05-20 23:35:04,653 [DEBUG] Describing resource AWSEBAutoScalingGroup in stack arn:aws:cloudformation:us-west-1:040951787496:stack/awseb-e-yz93miu6ma-stack/1bd7f720-da3f-11e3-a5f1-50fa003f9896

有什么想法吗?

谢谢

【问题讨论】:

    标签: amazon-web-services deployment amazon-elastic-beanstalk


    【解决方案1】:

    我在 bundle_install.sh 上遇到了类似的问题,请使用

    $> eb logs
    

    并检查您的 /var/log/directory-hooks-executor.log,对我来说,安装 gem 'forem' 失败。

    【讨论】:

    【解决方案2】:

    我发布到一个开发环境 beanstalk,它在 web.config 中有错字,所以没有一个网站会运行并出现 web.config 损坏错误。这损坏了我的 beanstalk 的 1 个实例环境后面的 EC2 实例,无法修复。我纠正了错字,但在发布时只收到此错误消息。

    尝试重新启动豆茎。 尝试重新启动 beanstalk 后面的 EC2 实例。 我什至尝试使用以下恢复应用程序版本来恢复较旧但工作的版本:beantalk/环境名称/应用程序版本。

    这些都不起作用。

    解决方案:

    在 EC2 管理中,我终止了 beanstalk 后面的 EC2 实例。然后 beanstalk 会自动重新创建一个新的 EC2 实例。完成后,我可以再次发布而不会出现此错误。

    【讨论】:

    • 我遵循了您的解决方案,它也对我有用。谢谢。
    • 感谢您的提醒!我的问题是坏实例。可以终止实例。
    【解决方案3】:

    我遇到了类似的错误:/opt/elasticbeanstalk/hooks/appdeploy/pre/10_composer_install.sh failed with returncode 255原来是作曲家是罪魁祸首。

    日志在/var/log/directory-hooks-executor.log:

    2015-01-19 15:13:33,537 [INFO] (29969 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Executing script: /opt/elasticbeanstalk/hooks/appdeploy/    pre/10_composer_install.sh
    + '[' -f composer.json ']'
    + echo 'Found composer.json file. Attempting to install vendors.'
    Found composer.json file. Attempting to install vendors.
    + composer.phar install --no-ansi --no-interaction --no-dev --prefer-dist
    Loading composer repositories with package information
    PHP Fatal error:  Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///opt/elasticbeanstalk/support/composer.phar/    vendor/symfony/console/Symfony/Component/Console/Application.php:975
    #1 phar:///opt/elasticbeanstalk/support/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL,     NULL, Array)
    #2 phar:///opt/elasticbeanstalk/support/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->    getSttyColumns()
    #3 phar:///opt/elasticbeanstalk/support/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->    getTerminalDimensions()
    #4 phar:///opt/elasticbeanstalk/support/composer.phar/vendor/symfony/console/Symfony/Component/Console/Applicat in phar:///opt/elasticbeanstalk/support/composer.phar/vendor/    symfony/console/Symfony/Component/Console/Application.php on line 975
    Fatal error: Uncaught exception 'ErrorException' with message 'proc_open(): fork failed - Cannot allocate memory' in phar:///opt/elasticbeanstalk/support/composer.phar/vendor/    symfony/console/Symfony/Component/Console/Application.php:975
    #1 phar:///opt/elasticbeanstalk/support/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(975): proc_open('stty -a | grep ...', Array, NULL, NULL,     NULL, Array)
    #2 phar:///opt/elasticbeanstalk/support/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(853): Symfony\Component\Console\Application->    getSttyColumns()
    #3 phar:///opt/elasticbeanstalk/support/composer.phar/vendor/symfony/console/Symfony/Component/Console/Application.php(818): Symfony\Component\Console\Application->    getTerminalDimensions()
    #4 phar:///opt/elasticbeanstalk/support/composer.phar/vendor/symfony/console/Symfony/Component/Console/Applicat in phar:///opt/elasticbeanstalk/support/composer.phar/vendor/    symfony/console/Symfony/Component/Console/Application.php on line 975
    2015-01-19 15:20:06,267 [ERROR] (29969 MainThread) [directoryHooksExecutor.py-33] [root directoryHooksExecutor error] Script /opt/elasticbeanstalk/hooks/appdeploy/    pre/10_composer_install.sh failed with returncode 255
    

    根据这个github issue解决这个问题的方法是在php.ini中增加memory_limit

    【讨论】:

      【解决方案4】:

      我刚刚解决了一个类似的错误。似乎 Elastic Beanstalk 无法应对其中一个实例的不良状态,根本无法部署到该实例,从而导致 EB 环境普遍不稳定。

      我通过将实例数减少到 1 并重新部署来解决此问题。这只保留了一个好的实例,杀死了有问题的实例,并解决了问题。

      【讨论】:

      • 当您拥有数百个生产实例时,这听起来像是一种理想的情况。 EB 是玩具环境吗?
      【解决方案5】:

      我也面临类似的问题,即

      挂钩 /opt/elasticbeanstalk/hooks/appdeploy/pre/03build.sh 失败。有关更多详细信息,请使用控制台或 EB CLI 检查 /var/log/eb-activity.log

      我建议从弹性豆茎的日志部分下载并彻底检查日志。您会在该日志中的某些位置找到错误原因。

      【讨论】:

        【解决方案6】:

        对我来说,它正在使用

        services.AddHttpsRedirection(o => o.HttpsPort = 443);
        

        在 .net core 5 应用的 Startup.cs 中。

        基本上,您不能要求 Elastic Beanstalk 在您的应用程序中执行 HTTP -> HTTPS 重定向。您必须转到 EC2 仪表板并找到您的 Elastic Beanstalk 应用程序的负载均衡器。然后编辑 HTTP 侦听器的规则,不要忘记指定 HTTPS 端口。

        【讨论】:

          猜你喜欢
          • 2015-07-22
          • 2022-05-28
          • 2019-06-25
          • 2016-09-05
          • 2021-04-09
          • 2016-06-30
          • 2013-07-24
          • 2021-03-08
          • 2014-03-02
          相关资源
          最近更新 更多