У меня есть образ докера, основанный на openjdk:8-jre-alpine
базовом изображении.Я выполняю файл войны внутри контейнера с java -jar ...
.Мой war-файл обслуживает веб-приложение, и внутри моего war-файла conf.json
есть файл, в котором у меня есть некоторые настройки конфигурации.Я хочу изменить некоторые конфигурации на основе переменных среды контейнера Docker.
Например, у меня есть поле для "gateway_url":"some_url"
, которое мне нужно изменить на "gateway_url":"${gateway_url}"
.Если бы этот конфигурационный файл не был внутри военного файла, я бы просто выполнил что-то вроде
awk -v val="$gateway_url" '{gsub("some_url",val);print}' > conf.json
в моем сценарии точки входа, чтобы отредактировать файл conf.json
.В этом случае я не могу получить доступ к файлу конфигурации напрямую, потому что он находится внутри файла war.
Как мне решить эту проблему?
ограничения
Я не хочу использовать утилиту jar
внутри моего контейнера для обновления файла внутри файла war, потому что онзначительно увеличивает размер моего контейнера (по умолчанию его нет и поставляется с полной установкой JDK).