Конфигурация typesafe не может анализировать URL-адрес с переменной

Мне нужно подключиться к серверу PostgreSQL на основе переменных ENV. Переменные ENV устанавливаются Docker. Я использую sbt-native-packager для создания док-контейнера моего проекта akka/play.

Итак, я попытался добавить переменные в свой конфиг:

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.

Есть ли у кого-нибудь предложение, как включить переменную ENV в URL-адрес JDBC, используемый в конфигурации typesafe?


person magegu    schedule 16.10.2014    source источник


Ответы (1)


Попробуйте следующее:

url="jdbc:postgresql://"${host}":5432/mail_archive"
person Renato    schedule 16.10.2014
comment
Что, если мой конфиг хочет предоставить хост и порт вместе? например url="jdbc:postgresql://"${host_port}"/mail_archive". Он снова будет жаловаться на то же самое. См. stackoverflow.com/questions/ 66561026/, спасибо! - person Yik San Chan; 10.03.2021