我最近创建了一个AWS CodePipeline管道,用于从Github获取,使用Jenkins / Maven构建,并部署到现有的ElasticBeanstalk项目。构建步骤的输出和部署步骤的输入是构建的.war文件。成功构建WAR后,部署将因AWS EB控制台中的此错误而失败。
[实例:i-6605c4e1]命令在实例上失败。返回码:2输出:(TRUNCATED)... 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,部署失败。
谢谢!
答案 0 :(得分:1)
只是回答这个问题并将其标记为已解决,我正在重述@tapichu提供的答案。
CodePipeline Jenkins插件会在将Jenkins作业“输出位置”上传到S3之前将其压缩。
在Jenkins项目配置页面中,有一个选项可以设置构建后操作。我选择了“AWS CodePipeline Publisher”操作,并且最初将“输出位置”设置为构建项目的WAR文件。这是不正确的。而是设置输出位置......
...到生成WAR文件的未压缩路径。
再次感谢@tapichu!