我有一个带有yml的spring boot应用程序,可在docker容器中配置它。像这样:
spring: application:
name: micro-example
config:
uri: ${vcap.services.config-service.credentials.uri:http://xxx.xxx.xx.73:8888}
如您所见,在我的配置中有一个ip硬编码的IP,这是一个坏主意,因为该合并仅用于服务器。是否存在将ip外部化或从docker命令行或更好的主意进行设置的方法?
有很多不同的方法可以做到:
1)设置环境变量(export VCAP_SERVICES_CONFIG-SERVICE_CREDENTIALS_URI='http://example.com'
在shell中或ENV
内部使用Dockerfile
)
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还从可执行JAR文件的同一目录中读取config/application.properties
或application.properties
位于同一目录中的值,因此可以提供此文件(您可以使用该文件VOLUME
)并覆盖JAR中的设置
另请参阅:http : //docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句