0

我最近创建了一个 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 部署失败。

谢谢!

4

1 回答 1

1

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

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

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

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

再次感谢@tapichu!

于 2016-05-10T19:59:37.337 回答