我最近创建了一个AWS CodePipeline管道,从Github抽取,使用Jenkins/Maven构建,并部署到现有的ElasticBeanstalk项目。构建步骤的输出和输入到部署步骤的内容是构建的.war文件。在成功构建WAR之后,部署将失败并出现AWS EB控制台的此错误。AWS CodePipeline ElasticBeanstalk部署失败
[实例: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插件将上传到S3之前将Jenkins作业“输出位置”压缩。是否WAR文件被压缩两次?你的Jenkins“输出位置”指向压缩的WAR文件吗?您可以尝试将其更改为生成WAR文件的未压缩路径。 – tapichu
谢谢@tapichu!那就是诀窍。 – klesh