我正在尝试自动化将play2 / sbt应用程序部署到受限制的容器化环境中的某些方面,并且有一些限制。
主要是我想要实现的是只有在设置了env变量时才为特定的命名数据库连接设置数据库配置。
通过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}
谢谢
答案 0 :(得分:0)
您可以设置一个由ENV var覆盖的默认值,如下所示:
somedb.driver = "changeme"
somedb.driver = ${?DB_DRIVER}
然后你必须检查你的代码是否覆盖,例如与模式匹配。