Elastic Beanstalk docker错误

时间:2015-07-18 21:06:21

标签: docker elastic-beanstalk

我在尝试更新单容器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)

4 个答案:

答案 0 :(得分:8)

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

答案 1 :(得分:5)

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

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

  

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

     

[2015-07-23T00:19:17.506Z] INFO [2624] - [CMD-Startup / StartupStage1 / AppDeployEnactHook / 00run.sh]:活动执行失败,原因是:jq:error:无法迭​​代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] INFO [2624] - [CMD-Startup / StartupStage1 / AppDeployEnactHook / 00run.sh]:活动失败。

     

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

     

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

     

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

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

不幸的是,在我的情况下,由于缺少环境变量,它无法启动。但是,AWS阻止我在beanstalk处于此状态时更新配置。在创建环境时,我无法指定环境变量。因此,我不确定我将采取哪些措施来解决问题。

答案 2 :(得分:4)

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

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

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"]

答案 3 :(得分:1)

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

请参阅eb cli帮助。例如......

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