提问者:小点点

如何设置阶段特定的microprofile配置与java-ee8, microProfile 4.0,Openfrepe21和Docker


我的应用程序在docker容器中使用JavaEE8、Open自由21.0.0.5和Microprofile 4.0时遇到问题。我无法从图像“外部”设置mpConfig-2.0引入的mp. config.profile。我的设置如下:

microprofile-config.properties
microprofile-config-dev.properties
microprofile-config-prod.properties

src/main/Resources/META-INF/内部

功能在server. xml中正确激活,并在启动时正确安装。

<featureManager onError="WARN">
    <feature>microProfile-4.0</feature>
    <feature>javaee-8.0</feature>
</featureManager>

我每个阶段还有一个server. env,它通过docker run的--env-file传递给我的容器。

我的第一个方法是在server. env中设置mp.config.profile,因为在不同的阶段运行映像时可以更改它。例如,mp.config.profile=devserver-dev.env中等等。然而,microprofile-config-dev.properties的值永远不会在此设置中使用。

我能够正确激活配置文件的唯一方法是使用

<variable name="mp.config.profile" value="dev" />

server. xml中。

但是,server. xml在docker映像中不是特定于阶段的,因此无法在不同阶段更改它。

有人有什么建议吗?正确的方法是什么?

提前谢谢

问候


共1个答案

匿名用户

如果您想从server. env设置mp.config.profile,您可能需要设置MP_CONFIG_PROFILE

由于点在环境变量名中无效,MPConfig在从环境变量中查找配置时定义了一些映射规则。它将检查请求的名称,将非字母数字字符转换为下划线,然后将所有字母转换为大写。