1

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

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

我的第一种方法是在mp.config.profile内部设置,server.env因为在不同阶段运行图像时可以更改它。femp.config.profile=dev里面server-dev.env等等。但是 microprofile-config-dev.properties 的值从不用于此设置。

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

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

里面server.xml

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

有没有人建议这样做的正确方法是什么?

提前致谢

问候

4

1 回答 1

2

如果要设置mp.config.profilefrom server.env,则可能需要设置MP_CONFIG_PROFILE

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

于 2021-06-17T14:35:44.350 回答