0

我需要基于 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' 值的一部分,请尝试将值括在双引号中,或者您可以重命名文件。属性而不是 .conf)

(其中 45 是 url= 行)

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

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

4

1 回答 1

2

尝试以下操作:

url="jdbc:postgresql://"${host}":5432/mail_archive"
于 2014-10-16T08:00:39.460 回答