我在尝试更新单容器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)
答案 0 :(得分:8)
之前我见过这个,并且相信当Docker容器无法构建时会发生这种情况。失败的命令是运行容器的命令,它失败了(IIRC),因为它无法从上一个构建步骤中找到容器。要尝试的事情:
eb local
成功构建? (https://aws.amazon.com/blogs/aws/run-docker-apps-locally-using-the-elastic-beanstalk-eb-cli/)eb-activity.log
是否存在错误答案 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的问题完全相同。我的解决方法是
从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
...