【问题标题】:AWS CodePipeline ElasticBeanstalk deploy failureAWS CodePipeline ElasticBeanstalk 部署失败
【发布时间】:2016-09-05 19:22:32
【问题描述】:

我最近创建了一个 AWS CodePipeline 管道,用于从 Github 中提取、使用 Jenkins/Maven 构建并部署到现有的 ElasticBeanstalk 项目。构建步骤的输出和部署步骤的输入是构建的 .war 文件。成功构建 WAR 后,部署失败,并从 AWS EB 控制台显示此错误。

[实例:i-6605c4e1] 实例上的命令失败。返回代码:2 输出:(截断)...opt/elasticbeanstalk/deploy/appsource/source_bundle + /usr/bin/unzip -o -d /tmp/deployment/application/ROOT /opt/elasticbeanstalk/deploy/appsource/source_bundle存档:/opt/elasticbeanstalk/deploy/appsource/source_bundle mapname:转换失败。挂钩 /opt/elasticbeanstalk/hooks/appdeploy/pre/02unzip.sh 失败。有关更多详细信息,请使用控制台或 EB CLI 检查 /var/log/eb-activity.log。

我可以在此处提取更详细的消息,但也许有人可以看到我看不到的明显我遗漏的东西。

我可以成功地将 Jenkins/Maven 生成的 WAR 文件直接部署到 Elastic Beanstalk,但通过 CodePipeline 部署失败。

谢谢!

【问题讨论】:

  • CodePipeline Jenkins 插件将在将 Jenkins 作业“输出位置”上传到 S3 之前对其进行压缩。难道是WAR文件被压缩了两次?您的 Jenkins“输出位置”是否指向压缩的 WAR 文件?您可以尝试将其更改为生成 WAR 文件的未压缩路径。
  • 谢谢@tapichu!成功了。

标签: java amazon-web-services deployment war aws-codepipeline


【解决方案1】:

只是为了回答这个问题并将其标记为已解决,我重申@tapichu 提供的答案。

CodePipeline Jenkins 插件会在将 Jenkins 作业“输出位置”上传到 S3 之前对其进行压缩。

在 Jenkins 项目的配置页面中,有一个选项可以设置构建后操作。我选择了“AWS CodePipeline Publisher”操作,并最初将“输出位置”设置为构建项目的 WAR 文件。这是不正确。而是设置输出位置...

...到生成 WAR 文件的未压缩路径。

再次感谢@tapichu!

【讨论】:

  • 从 0.15 版开始,该插件将按原样上传常规文件,而无需再次压缩它们。因此,您可以返回并更新输出位置以指向您要上传的 WAR 文件。
猜你喜欢
  • 2019-04-07
  • 2021-04-09
  • 2013-07-24
  • 2021-03-08
  • 2020-03-21
  • 2016-08-28
  • 2015-03-03
  • 2019-06-25
  • 1970-01-01
相关资源
最近更新 更多