Я использовал конфигурацию Lightbend для настройки служб Lagom с помощью переменных среды в docker контейнерах в течение многих лет, поэтому знайте, что это можно сделать, и это было довольно просто в моем опыте.
С этим в помните, когда вы говорите, что они не используются application.conf
, вы имеете в виду, что они не установлены? Обратите внимание, что если вы не передадите очень специфическую опцию c в качестве свойства Java, configuration.getString("ENV_MYSQL_DATABASE_URL")
не будет читать из переменной среды, поэтому проверка, которая не сообщит вам ничего о том, влияет ли среда на mysql.url
переменная. configuration.getString("mysql.url")
даст вам лучшее представление о том, что происходит.
Я подозреваю, что на самом деле ваше Docker изображение создается с жестко заданными свойствами dev-mode, а поскольку системные свойства Java принимают Приоритет над всем остальным, они скрывают переменную окружения.
Вы можете найти полезным структурировать application.conf
по следующим направлениям:
mysql_database_url = "..." # Some reasonable default default for dev-mode
mysql_database_url = ${?ENV_MYSQL_DATABASE_URL}
mysql {
url = "jdbc://"${mysql_database_url}
}
В этом случае у вас есть разумное значение по умолчанию для разработчика (возможно, включение в документацию некоторых инструкций по запуску MySQL способом, совместимым с этой конфигурацией). Затем значение по умолчанию можно переопределить, установив свойство Java (например, JAVA_OPTS=-Dmysql_database_url
) или установив переменную окружения ENV_MYSQL_DATABASE_URL
.