【问题标题】:Elastic Beanstalk docker errorElastic Beanstalk 泊坞窗错误
【发布时间】:2015-10-08 08:12:07
【问题描述】:

我在尝试更新单容器 Docker 应用程序的配置时遇到一个神秘错误。任何人都知道可能导致这种情况的原因,或者如何进行调试?

ERROR [3009]  : Command execution failed:
   [CMD-ConfigDeploy/ConfigDeployStage0/ConfigDeployPreHook/00run.sh] 
   command failed with error code 1:
   /opt/elasticbeanstalk/hooks/configdeploy/pre/00run.sh
   docker: "tag" requires 2 arguments. See 'docker tag --help'.
   (ElasticBeanstalk::ActivityFatalError)

【问题讨论】:

    标签: docker amazon-elastic-beanstalk


    【解决方案1】:

    您可以在 eb createeb clone 命令的命令行中提供环境变量。这些是在创建或克隆任务之前设置的,因此环境会设置它们。

    请参阅 eb cli 帮助。比如……

    $ eb create -h ... --envvars ENVVARS a comma-separated list of environment variables as key=value pairs ...

    【讨论】:

      【解决方案2】:

      我和@Shannon 的问题完全相同。我的解决方法是

      • 首先,部署一个保证工作的示例 Dockerfile,
      • 然后设置我真正的 Docker 应用程序需要的所有环境变量,
      • 终于重新部署了真正的 Docker 应用。

      AWS documentation 复制粘贴的示例 Dockerfile:

      FROM ubuntu:12.04
      
      RUN apt-get update
      RUN apt-get install -y nginx zip curl
      
      RUN echo "daemon off;" >> /etc/nginx/nginx.conf
      RUN curl -o /usr/share/nginx/www/master.zip -L https://codeload.github.com/gabrielecirulli/2048/zip/master
      RUN cd /usr/share/nginx/www/ && unzip master.zip && mv 2048-master/* . && rm -rf 2048-master master.zip
      
      EXPOSE 80
      
      CMD ["/usr/sbin/nginx", "-c", "/etc/nginx/nginx.conf"]
      

      【讨论】:

      • 我认为这是最干净的方法...没有脚本,只是有点破解项目并设置环境变量。 +1
      • 令人失望的 AWS 需要像这样的 hack,因为我认为这是一个常见的场景。在 Web UI 中设置环境时,您应该能够设置环境变量。同时感谢您提供有用的解决方案。
      【解决方案3】:

      如果您的应用程序在第一次部署时未能成功启动,则可能会发生这种情况。我自己刚开始遇到这个问题。

      查看您服务器上的 /var/log/eb-activity.log...您可能会看到如下内容:

      [2015-07-23T00:19:11.015Z] 信息 [2624] - [CMD-Startup/StartupStage1/AppDeployEnactHook/00run.sh]:开始活动...

      [2015-07-23T00:19:17.506Z] INFO [2624] - [CMD-Startup/StartupStage1/AppDeployEnactHook/00run.sh]:活动执行失败,因为:jq:错误:无法迭代 null aca80d7accfe4800ff04992e2f89a1e05689423d286deee31b53bf470ce89afb Docker 容器在启动后意外退出:bleBeanFactory.java:942) 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533) ... 93 更多。检查快照日志以获取详细信息。 (ElasticBeanstalk::ExternalInvocationError) 引起:jq:错误:无法迭代null aca80d7accfe4800ff04992e2f89a1e05689423d286deee31b53bf470ce89afb Docker 容器在启动后意外退出:bleBeanFactory.java:942) 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533) ... 93 更多。检查快照日志以获取详细信息。 (执行者::NonZeroExitStatus)

      [2015-07-23T00:19:17.506Z] 信息 [2624] - [CMD-Startup/StartupStage1/AppDeployEnactHook/00run.sh]:活动失败。

      [2015-07-23T00:19:17.507Z] 信息 [2624] - [CMD-Startup/StartupStage1/AppDeployEnactHook]:活动失败。

      [2015-07-23T00:19:17.507Z] 信息 [2624] - [CMD-Startup/StartupStage1]:活动失败。

      [2015-07-23T00:19:17.507Z] 信息 [2624] - [CMD-Startup]:已完成活动。结果: 命令 CMD 启动(阶段 1)失败。

      接下来,查看 /var/log/eb-docker/containers/eb-current-app 如果您看到了 unexpected-quit.log,那么它应该包含您的应用程序在尝试启动时记录的错误,但未成功.

      不幸的是,就我而言,它无法启动,因为缺少环境变量。但是,AWS 阻止我在 beanstalk 处于此状态时更新配置。而且我在创建环境时无法指定环境变量。所以我不确定我会做什么来解决这个问题。

      【讨论】:

      • 简单编辑与您的环境关联的 Auto Scaling 组,并将所需的实例数设置为 0(与 Min 相同)。等到您的实例被销毁。当您的 Beanstalk 环境没有实例时,请更新您的环境变量。等待更新完成。将您的 Auto Scaling 组改回来。 TADAAAAA,你解决了你的问题:)
      • 我和香农的问题完全相同。 @kiddouk 您的解决方案对我不起作用,EB 抱怨该值必须 >= 1。
      • 对我的答案在意外退出日志中,谢谢!
      • 查看正确的日志文件是我解决类似问题的原因。
      【解决方案4】:

      我以前见过这个,并且相信当 Docker 容器构建失败时会发生这种情况。失败的命令是运行容器的命令,它失败了(IIRC),因为它无法从上一个构建步骤中找到容器。尝试的事情:

      【讨论】:

        猜你喜欢
        • 2017-05-04
        • 2016-05-24
        • 1970-01-01
        • 2017-10-12
        • 2018-04-03
        • 2021-11-05
        • 2018-12-20
        • 2019-06-28
        • 2016-10-20
        相关资源
        最近更新 更多