0

我正在尝试使用 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 部署它并启动服务。

我不确定我错过了什么。任何帮助将非常感激。

4

2 回答 2

0

我没有将 -Dspring.profiles.active 设置为 RUN_ARGS,而是将其设置为 JAVA_OPTS,然后应用程序按预期运行。

于 2018-10-24T15:15:25.657 回答
0

它通过使用对我有用

RUN_ARGS="--spring.profiles.active=生产 --spring.liquibase.enabled=false"

所以,对你来说应该是

RUN_ARGS="--spring.profiles.active=myprofile"

于 2021-12-11T12:48:10.870 回答