Jenkins选择Spring Boot配置文件的任何方式?

问题描述 投票:1回答:2

我的小组正在使用Jenkins构建和部署Spring Boot应用程序到AWS(Elastic Beanstalk)。

对于开发,我通过在application.properties中设置spring.profiles.active属性来为我所在的环境(DEV,QA)选择所需的配置文件。

但是开发人员希望在外部设置该属性。由于应用程序正在部署到SpotInst托管的EC2,因此我无法控制环境。

我一直在做很多搜索,但还没有遇到任何适合这种情况的事情。

我正在使用Gradle进行构建。构建生成WAR文件并部署到Tomcat。

无论如何,通过某种参数替换来实现这一目标?

谢谢。

amazon-web-services spring-boot jenkins gradle
2个回答
1
投票

我们的devOps人员发现我们可以通过AWS Beanstalk设置环境属性。通过转到beanstalk实例上的Configuration并单击Software下的Modify按钮,向下滚动,有一个环境变量部分。他把spring.profiles.active = qa放进去处理它。

由于每个单独的环境都有一个beanstalk,因此只需为每个环境设置一次。


0
投票

我不确定这是否适合您的devOps过程,但有一个非常简单和干净的方法来实现这一点。

配置您的application.yaml文件,如下所示:

spring:
  profiles: 
    active: ${SPRING_PROFILE:"dev"}

在启动应用程序时,将此参数SPRING_PROFILE作为命令行参数传递。请注意,dev是默认值,如果程序找不到任何匹配的命令行参数或环境变量,将使用该值。

您可以将默认值设置为要用于devOps的默认值,而对于您可以控制的所有其他目的,您可以将其作为参数传递。

© www.soinside.com 2019 - 2024. All rights reserved.