【问题标题】:passing RUN_ARGS for spring boot application running as service in linux为在 Linux 中作为服务运行的 Spring Boot 应用程序传递 RUN_ARGS
【发布时间】:2020-05-15 06:14:45
【问题描述】:

我已按照spring-boot documentation 的指示成功将spring-boot 部署为centos 中的服务。

以下所有命令都有效

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

【问题讨论】:

    标签: spring spring-boot spring-4 java-opts


    【解决方案1】:

    如果我没记错的话应该是

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

    【讨论】:

    • 传递多个命令不起作用。只有第一个似乎被捡起。是否有我需要使用的分隔符。 --spring.datasource.username=xxx --spring.datasource.password=yyy。仅其中,用户名设置正确
    • 你可能需要将所有的参数用双引号括起来。
    • 我试过"--spring.datasource.username=xxx --spring.datasource.password=yyy"。那也没用
    • 我在这里发布了另一个问题。stackoverflow.com/questions/40095464/…
    猜你喜欢
    • 2021-07-29
    • 2021-09-24
    • 2018-09-15
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 1970-01-01
    • 2012-06-27
    相关资源
    最近更新 更多