.war 文件未部署在 Elastic Beanstalk 环境中
Posted
技术标签:
【中文标题】.war 文件未部署在 Elastic Beanstalk 环境中【英文标题】:.war file is not deployed in the Elastic Beanstalk environment 【发布时间】:2020-05-29 22:50:04 【问题描述】:我正在使用 Jenkins 管道在 EB 环境中部署带有 .ebextensions 的 .war 文件。部署成功,所有命令都在部署阶段执行,但是当我检查 /usr/share/tomcat8/webapps/ROOT/ 时,我只看到我的 .war 文件原样存在,没有解压。
这是什么原因?以及有关如何解决该问题的任何想法?请在下面找到我的代码 sn-p。
zip -r app-$BUILD_NUMBER.zip myapp.war .ebextensions
aws s3 cp myapp.war s3://inc-eb-deployments/inc-batch/myapp.war
【问题讨论】:
【参考方案1】:尝试将其部署到 webapps 文件夹,而不是 webapps/ROOT。然后tomcat应该解压到webapps/myapp。
如果您想在根目录中部署应用程序,您需要将构建输出命名为 ROOT.war 并将其放在 webapps 文件夹中。
【讨论】:
我尝试了同样的方法,但没有成功。 ROOT.war 也在 webapps/ROOT 目录下,作为 ROOT.war 的 satay,不解压。【参考方案2】:使用 .war 文件设置 ebextesnions 后,该文件与 ebextensions(.zip 格式)相结合。在这种情况下,应通过 .ebextension 文件手动解压缩 .war 文件。以下是示例代码sn-p。
fix_path:
command: "unzip <app-name>.war 2>&1 > /var/log/my_last_deploy.log"
此解决方案适用于我的环境。
【讨论】:
以上是关于.war 文件未部署在 Elastic Beanstalk 环境中的主要内容,如果未能解决你的问题,请参考以下文章
将war文件部署到Tomcat时出现Elastic Beanstalk 502错误
使用 Elastic Beanstalk 时保留 WAR 名称