0

我正在尝试将 play2/sbt 应用程序部署到受限容器化环境的某些方面自动化,并且有一些限制。

主要我想要实现的是仅在设置环境变量时为特定的命名数据库连接设置数据库配置。

通过阅读 HOCON 格式文档,我预计如果我不设置任何替换变量,键将被忽略,但事实并非如此,应用程序仍会获取 somedb 连接并尝试连接到它。

我怀疑如果有子密钥,可能会创建 db.somedb 密钥?

我能做些什么来获得我正在寻找的行为。

请注意,创建一个单独的配置文件并加载它不是我的选择

db {
  somedb.driver = ${?DB_DRIVER}
  somedb.url = ${?DB_URL}
  somedb.username = ${?DB_USERNAME}
  somedb.password = ${?DB_PASSWORD}
}
db.somedb.jndiName=${?DB_JNDI}

谢谢你

4

1 回答 1

0

您可以设置一个由 ENV var 覆盖的默认值,如下所示:

somedb.driver = "changeme" somedb.driver = ${?DB_DRIVER}

然后,您必须检查您的代码是否被覆盖,例如使用模式匹配。

于 2017-03-27T12:12:35.907 回答