Elastic Beanstalk泊坞窗错误

尝试更新单容器Docker应用程序的configuration时,我遇到了一个模糊的错误。 任何人有什么可能会导致这个问题的想法,或者如何去debugging呢?

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容器无法build立的时候。 失败的命令是运行你的容器,并失败(IIRC),因为它找不到从以前的构build步骤的容器。 试一试:

如果您的应用程序第一次部署失败,可能会发生这种情况。 刚开始有自己的问题。

看看你的服务器上的/var/log/eb-activity.log …你可能会看到类似于:

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

[2015-07-23T00:19:17.506Z]信息[2624] – [CMD启动/ StartupStage1 / AppDeployEnactHook / 00run.sh]:活动执行失败,因为:jq:error:无法遍历空aca80d7accfe4800ff04992e2f89a1e05689423d286deee31b53bf470ce89afb Docker容器意外退出启动后:bleBeanFactory.java:942)在org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:533)… 93 more。 检查快照日志的详细信息。 (ElasticBeanstalk :: ExternalInvocationError)引起的:JQ:错误:无法通过空迭代aca80d7accfe4800ff04992e2f89a1e05689423d286deee31b53bf470ce89afb泊坞容器推出后意外退出: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-Startup(阶段1)失败。

接下来,看一下/ var / log / eb-docker / containers / eb-current-app如果你看到一个unexpected-quit.log,那么它应该包含应用程序在尝试启动时尝试失败的错误。

不幸的是,在我的情况下,由于缺less一个环境variables而无法启动。 但是,AWS阻止我在beanstalk处于此状态时更新configuration。 在创build环境时,我无法指定环境variables。 所以我不知道我会做什么来解决这个问题。

我有和香农一样的问题。 我的解决方法是

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

从AWS文档复制粘贴示例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"] 

您可以在eb createeb clone命令的命令行中提供您的环境variables。 这些都是创build或克隆任务之前设置的所以环境会自动设置。

查看eb cli的帮助。 例如…

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