У меня есть приложение для весенней загрузки, которое отлично запускается в строке cmd:
export SPRING_APPLICATION_JSON='...'
java org.springframework.boot.loader.WarLauncher
Но когда я делаю это с докером:
docker run --rm -p 8080:8080 --env SPRING_APPLICATION_JSON='...' foo/bar
Приложение запускается, но не видит свойств, определенных в SPRING_APPLICATION_JSON.
Но ENV_VAR - это установленный, я вижу это в журналах, потому что приложение печатает System.getenv() в основном методе.
Приложение, которое отлично работает в строке cmd, создается из образа (экспорт докеров ...), поэтому оба приложения идентичны.
Что здесь не так?
Еще нужно проверить, работает ли он через файл набора, как в github.com/box/mojito/blob/master/docker/docker-compose.yml# L26


Чтобы сузить проблему, можете ли вы установить какие-либо другие переменные среды и посмотреть, отражает ли контейнер докеров изменение? например измените порт с помощью SERVER_PORT = или SPRING_APPLICATION_NAME и посмотрите, изменится ли это в журналах запуска. Это может быть связано с json-форматированием содержимого этой переменной - возможно, необходимо экранирование кавычек внутри строки кавычек.