【问题标题】:typesafe config cannot parse url with variable类型安全配置无法解析带有变量的 url
【发布时间】:2015-09-10 00:12:59
【问题描述】:

我需要根据 ENV 变量连接到 PostgreSQL 服务器。 ENV 变量由 Docker 设置。我正在使用 sbt-native-packager 创建我的 akka/play 项目的 docker 容器。

所以我尝试将变量添加到我的 conf:

db{
  default {
    host=${POSTGRES_PORT_5432_TCP_ADDR}
    driver=org.postgresql.Driver
    url=jdbc:postgresql://${host}:5432/mail_archive
    user=username
    password=password
  }
}

很遗憾配置文件无法解析:

45: 期望大括号 } 或逗号,得到 ':'(如果您想要 ':' 要成为“url”值的一部分,请尝试将值括在 double 中 引号,或者您可以重命名文件 .properties 而不是 .conf)

(其中 45 是 url= 行)

当在 url 字符串周围使用 " 时,${host} 变量不再被替换,播放应用程序将抛出 HostNotFoundException。

是否有人建议如何在类型安全配置中使用的 JDBC url 中包含 ENV 变量?

【问题讨论】:

    标签: sbt sbt-native-packager typesafe-stack typesafe-config


    【解决方案1】:

    尝试以下方法:

    url="jdbc:postgresql://"${host}":5432/mail_archive"
    

    【讨论】:

    • 如果我的配置想同时提供主机和端口怎么办?比如url="jdbc:postgresql://"${host_port}"/mail_archive"。它会再次抱怨同样的事情。见stackoverflow.com/questions/66561026/…,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 2018-04-01
    • 2017-02-07
    • 2019-08-10
    • 2022-11-30
    • 2014-11-16
    相关资源
    最近更新 更多