spring.config.additional-location 作为环境变量
Posted
技术标签:
【中文标题】spring.config.additional-location 作为环境变量【英文标题】:spring.config.additional-location as environmental variable 【发布时间】:2019-07-13 08:36:44 【问题描述】:我有一个用于 spring boot 2 应用程序的 Docker 映像, 在图像中,我使用 spring.config.additional-location 传递存储在容器本身文件中的一些属性。
现在我想在另一个容器中使用这个容器作为另一个容器中的层或在 docker-compose 文件中使用它,我可能需要覆盖 spring.config.additional-location。
我试图在 ENV 变量中覆盖它:
SPRING_CONFIG_ADDITIONAL-LOCATION
没有成功。
实现这一目标的正确方法是什么。
【问题讨论】:
【参考方案1】:spring.config.additional-location 的值必须是目录路径而不是文件路径。我不确定这是错误还是功能,因为 spring.config.location 两者都允许。
例如在 docker-compose.yml 中,您可以将 spring.config.additional-location 设置为:
version: '3'
services:
myapp:
build: .
environment:
- "SPRING_CONFIG_ADDITIONAL-LOCATION=file:/opt/myapp/config/"
- "SPRING_PROFILES_ACTIVE=production"
...
然后 Spring Boot 将查找 /opt/myapp/config/application-production.properties 文件以从中加载属性。
更多信息请关注Spring Boot Externalized Configuration
【讨论】:
以上是关于spring.config.additional-location 作为环境变量的主要内容,如果未能解决你的问题,请参考以下文章
spring boot 外部配置文件1-spring.config.location与spring.config.additional-location的区别
spring boot 外部配置文件1-spring.config.location与spring.config.additional-location的区别