为 spring 引导应用程序 运行 作为 linux 中的服务传递 RUN_ARGS

passing RUN_ARGS for spring boot application running as service in linux

我已按照 spring-boot documentation 的说明进行操作,并在 centos 中成功部署了 spring-boot 作为服务。

以下所有命令都有效

sudo /etc/init.d/myapp start
sudo /etc/init.d/myapp stop
sudo /etc/init.d/myapp status

application.properties 具有我需要在部署期间覆盖的数据库凭据。我想将它设置为 RUN_ARGS 环境变量只是因为我的 CI 服务器 (Jenkins) 将部署应用程序,设置环境变量并启动服务

所以我希望以下两个命令可以在我的 centos 机器上运行

export RUN_ARGS='spring.datasource.username=XXXXX,spring.datasource.password=YYYY'
sudo /etc/init.d/myapp start

然而,这两个值没有被拾取 spring boot app。它在 application.properties 中采用默认值,并且在初始化池时服务失败。

我通过 RUN_ARGS 的方式有什么问题。正确的做法是什么?

我也试过使用JAVA_OPTS但是没有用。

export JAVA_OPTS='-Dspring.datasource.username=XXXXX,-Dspring.datasource.password=YYYY'
sudo /etc/init.d/myapp start

如果我没记错的话应该是

 sudo /etc/init.d/myapp start --spring.datasource.username=xxx --spring.datasource.password=yyy