【发布时间】:2017-12-09 15:18:14
【问题描述】:
我已将所有配置设置到位于 src/main/resources 下的 application.conf 中。当我在生产模式下运行我的应用程序时它工作正常。
val config = ConfigFactory.load()
在某些特定情况下,当我在 docker 容器中运行我的应用程序时,我需要覆盖大约 30 个属性。
当我添加时
-Dconfig.file="/etc/deployed.conf"
它排除了所有包含“application.conf”并且在“deployed.conf”中未被覆盖的原始属性。
有没有办法解决这个问题?
更新:将
val myCfg = ConfigFactory.parseFile(new File("etc/deployed.conf"))
val config = ConfigFactory.load().withFallback(myCfg)
覆盖 application.conf 中的值,如果此文件不存在不会抛出任何异常?
【问题讨论】:
-
也许添加 .withFallback
-
您是否尝试将
deployed.conf重命名为application.conf只是为了查看是否存在约定问题?另外,我会设置-Dconfig.trace=loads标志并监视 stderr 以查看是否有任何分辨率问题。 -
@Roby 查看我的更新
-
@YuvalItzchakov 我按照您的建议重命名了外部配置并添加了跟踪,看起来 application.conf 被忽略了。它进入外部conf,然后进入akka jars中的reference.conf。
-
它实际上解析了你的外部配置?
标签: scala configuration config app-config typesafe-config