我正在尝试使用 init.d 将 Spring Boot 作为服务运行。我面临一个问题,没有考虑 -Dspring.profiles.active=xxx 并且 spring 说没有找到活动配置文件将配置文件设置为默认值。
我正在使用 SpringBoot 1.5.13 版。
以下是我的conf文件设置
JAVA_OPTS="-Xms2048m -Xmx2048m -XX:+UseG1GC -XX:+UseStringDeduplication -Djsse.enableSNIExtension=false -Djava.security.egd=file:/dev/./urandom"
MODE=service
RUN_ARGS=-Dspring.profiles.active=myprofile
我什至尝试设置环境变量 RUN_ARGS,但服务仍然没有接收到它。
与我的 jar 文件相比,我的 conf 文件位于不同的文件夹中,并且我在我的 gradle 构建中使用bootRepackage指向该位置(示例如下)
bootRepackage {
mainClass = 'com.test.myapp.MyAppApplication'
executable = true
embeddedLaunchScriptProperties =
[
'mode': 'service',
'confFolder': '/etc/myapp/conf'
]
excludeDevtools = true
}
我的 bootJar 名称和 conf 文件的名称相同。此外,当我执行head -100 myapp.jar时,我看到指定的 confFolder 在 bootJar 中正确获取
我使用 ospackage 将我的 Spring Boot 应用程序捆绑为 rpm,然后使用 yum install 部署它并启动服务。
我不确定我错过了什么。任何帮助将非常感激。