#spring-boot #spring-cloud-kubernetes
#spring-загрузка #spring-cloud-kubernetes
Вопрос:
Загрузка Spring 2.2.6 — ВЫПУСК
В моем application.yml
, у меня есть эта строка :
logging.config: classpath:my-logback-config.xml
Это работает хорошо, spring прекрасно получает конфигурацию
В моем my-logback-config.xml
у меня есть эта строка :
<springProperty name="LOG_HOST" source="config.logHost" />
<springProperty name="LOG_PORT" source="config.logPort" />
Опять же, это работает хорошо, оно получает свое значение из внешнего файла конфигурации, который определен в переменной ENV
SPRING_CONFIG_ADDITIONAL_LOCATION=file:/my-env.properties
Но когда я включаю Spring Cloud Kubernetes, происходит сбой с UnknowHostException : "LOG_HOST_IS_UNDEFINED" cannot be resolved.
(значение LOG_HOST
используется для настройки сетевого приложения)
Почему включение Spring Cloud Kubernetes изменяет поведение инициализации журнала?
Похоже, что значения из SPRING_CONFIG_ADDITIONAL_LOCATION еще не загружены.
Я не могу загрузить это значение из ConfigMap, поскольку Spring Cloud Kubernetes не был инициализирован на момент инициализации ведения журнала.
Ответ №1:
Наконец, проблема заключалась в том, что переменная ENV SPRING_CONFIG_ADDITIONAL_LOCATION
была установлена на папку, а не на файл в контейнере.
Локально, в Windows, установка ‘SPRING_CONFIG_ADDITIONAL_LOCATION’ для файла или папки, похоже, работает, но в образе Docker (RH linux) это оказывает влияние.
Когда SPRING_CONFIG_ADDITIONAL_LOCATION
значение установлено в папку, значения вложенных файлов «.properties» игнорируются.
Я могу воспроизвести (исправить) проблему, изменив свой файл docker :
ENV SPRING_CONFIG_ADDITIONAL_LOCATION="/mnt/properties/application.properties"
Для
ENV SPRING_CONFIG_ADDITIONAL_LOCATION="/mnt/properties/"