.war 文件未部署在 Elastic Beanstalk 环境中

.war file is not deployed in the Elastic Beanstalk environment

我正在使用 Jenkins 管道在 EB 环境中部署带有 .ebextensions 的 .war 文件。部署成功,所有命令都在部署阶段执行,但是当我检查 /usr/share/tomcat8/webapps/ROOT/ 时,我只看到我的 .war 文件原样存在,没有解压。

这是什么原因?以及关于如何解决该问题的任何想法?请在下面找到我的代码片段。

zip -r app-${BUILD_NUMBER}.zip myapp.war .ebextensions

aws s3 cp myapp.war s3://inc-eb-deployments/inc-batch/myapp.war

尝试将其部署到 webapps 文件夹,而不是 webapps/ROOT。然后 tomcat 应该解压缩到 webapps/myapp.

如果您想在根目录中部署您的应用程序,您需要为构建输出命名 ROOT.war 并将其放在 webapps 文件夹中。

使用 .war 文件设置 ebextension 后,该文件将与 ebextensions(.zip 格式)结合使用。在这种情况下,.war 文件应通过 .ebextension 文件手动解压缩。以下是示例代码片段。

 fix_path:
    command: "unzip <app-name>.war 2>&1 > /var/log/my_last_deploy.log"

此解决方案适用于我的环境。