У меня есть проект sbt, который запускает сервер на указанном порту. Вот соответствующий отрывок из build.sbt
:
port in container.Configuration := sys.env.getOrElse("MY_VAR_SEARCH_PORT", 8080).toString.toInt
Когда я запускаю проект из sbt, $MY_VAR_SEARCH_PORT
подхватывается, и все хорошо.
Однако для prod я использую sbt-assembly и запускаю jar в docker-контейнере, поэтому команда запуска выглядит так:
docker run -it -p 80:80 -e MY_VAR_SEARCH_PORT=80 mydockerhubrepo/myimageid /docker-entrypoint.sh java -Djava.io.tmpdir=/tmp/jetty -Drun.mode=production -Denv=prod -jar /usr/local/jetty/start.jar
Я вижу, что var передается в контейнер, но jar не принимает его, так как он запускает сервер на порту по умолчанию.
Что было бы хорошим способом сделать sbt-assembly jar доступом к переменным среды? Или, может быть, я могу передать эту переменную как аргумент java - тогда как получить к ней доступ из файла build.sbt?