【发布时间】:2020-09-22 21:31:19
【问题描述】:
我正在尝试为现有应用程序创建管道。它是一个 React/Java Spring Boot 应用程序。它通常被捆绑到一个单一的战争文件中并上传到 ElasticBeanstalk。我创建了我的 codebuild 项目,当我手动运行它时,它会生成一个 war 文件,然后我可以将其上传到 ElasticBeanstalk 并且一切正常。其构建规范如下:
version: 0.2
phases:
install:
commands:
- echo Nothing to do in the install phase...
pre_build:
commands:
- echo Nothing to do in the pre_build phase...
build:
commands:
- echo Build started on `date`
- mvn -Pprod package -X
post_build:
commands:
- echo Build completed on `date`
- mv target/cogcincinnati-0.0.1-SNAPSHOT.war cogcincinnati-0.0.1-SNAPSHOT.war
artifacts:
files:
- cogcincinnati-0.0.1-SNAPSHOT.war
当我在管道中运行此构建步骤时,它会生成一个 zip 文件,该文件会被拖放到 S3 上。我的部署步骤采用该构建工件并将其发送到 ElasticBeanstalk。 Elasticbeanstalk 没有给我任何错误,但是当我导航到我的网址时,我得到了 404。
我尝试将 zip 文件直接上传到 Elasticbeanstalk,得到了相同的结果。我已经解压了这个文件,它似乎有我所有的项目文件。
当我查看服务器日志时,我没有看到任何错误。我不明白为什么当我手动运行 codebuild 时似乎正在生成一个 war 文件,但在代码管道中执行时却是一个 zip。
【问题讨论】:
-
您是在上下文路径下部署吗?如果是这样,请阅读有关在 jhipster.tech/production/#building-an-executable-jar--war-file 上设置基本 href 的信息
-
我更新了对 new BaseHrefWebpackPlugin({ baseHref: '/cogcincinnati/' }) 的引用并重新部署。它没有用。我认为你可能是正确的,它可能是不正确的。我认为根本问题是它没有部署正确的配置文件。
标签: spring-boot amazon-elastic-beanstalk jhipster aws-codepipeline aws-codebuild