.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 名称

AWS Elastic Beanstalk Tomcat 适用于 .war 但不适用于 .zip

服务器 tomcat 未部署最新的 WAR 更改

WAR 文件部署未连接到 MySQL

在apache tomcat上部署war文件时未加载CSS和JS文件