0

Spring Boot 2.2.6-RELEASE

在我的application.yml,我有这一行:

logging.config: classpath:my-logback-config.xml

这很好用,春天很好地得到了它的配置

在我的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。

4

1 回答 1

0

最后,问题是 ENV varSPRING_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/"
于 2020-10-21T20:12:19.310 回答