+-
java – 如何从docker命令行设置参数来配置spring boot应用程序?
我有一个带有yml的 spring boot应用程序,可以在docker containter中配置它.
像这样的东西:

 spring:   application:
   name: micro-example
   config:
     uri: ${vcap.services.config-service.credentials.uri:http://xxx.xxx.xx.73:8888}

正如你所看到的,我的配置中有一个ip硬编码,这是一个坏主意,因为编译仅适用于服务器.
是否存在外部化ip的方法,或者从docker命令行或更好的想法设置它?

最佳答案
有很多不同的方法可以做到:

1)设置环境变量(在shell中使用export VCAP_SERVICES_CONFIG-SERVICE_CREDENTIALS_URI =’http://example.com’,或在Dockerfile中使用ENV)

2)将其作为JVM参数传递(java -Dvcap.services.config-service.credentials.uri = http://example.com -jar app.jar)

3)将其作为命令行参数传递(java -jar app.jar –vcap.services.config-service.credentials.uri = http://example.com)

4)Spring Boot还从config / application.properties或application.properties读取值,这些值与可执行JAR文件位于同一目录中,因此可以提供此文件(可以使用VOLUME)并覆盖JAR中的设置

另见:http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

点击查看更多相关文章

转载注明原文:java – 如何从docker命令行设置参数来配置spring boot应用程序? - 乐贴网