如何使用 java-ee8、microProfile 4.0、Openliberty 21 和 Docker 设置阶段特定的 microprofile 配置
How to setup stage-specific microprofile config with java-ee8, microProfile 4.0, Openliberty 21 and Docker
我的应用程序在 docker 容器中使用 JavaEE8、Openliberty 21.0.0.5 和 Microprofile 4.0 时遇到问题。
我无法从图像“外部”设置 mpConfig-2.0-introduced 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 运行 的 --env-file
.
传递到我的容器
我的第一个方法是在 server.env
中设置 mp.config.profile
因为它可以
在不同阶段 运行 调整图像时发生变化。
f.e。 mp.config.profile=dev
里面 server-dev.env
等等。
但是,此设置从未使用 microprofile-config-dev.properties 的值。
我能够正确激活配置文件的唯一方法是使用
<variable name="mp.config.profile" value="dev" />
里面 server.xml
.
但是 server.xml
在 docker 图像中不是特定于阶段的,因此无法在不同阶段更改它。
有没有人建议正确的方法是什么?
提前致谢
此致
如果您想从 server.env
设置 mp.config.profile
,您可能需要改为设置 MP_CONFIG_PROFILE
。
由于点在环境变量名称中无效,MP Config defines some mapping rules 从环境变量中查找配置时。它将检查请求的名称是否已将非字母数字字符转换为下划线,然后再次将所有字母转换为大写。
我的应用程序在 docker 容器中使用 JavaEE8、Openliberty 21.0.0.5 和 Microprofile 4.0 时遇到问题。
我无法从图像“外部”设置 mpConfig-2.0-introduced 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 运行 的 --env-file
.
我的第一个方法是在 server.env
中设置 mp.config.profile
因为它可以
在不同阶段 运行 调整图像时发生变化。
f.e。 mp.config.profile=dev
里面 server-dev.env
等等。
但是,此设置从未使用 microprofile-config-dev.properties 的值。
我能够正确激活配置文件的唯一方法是使用
<variable name="mp.config.profile" value="dev" />
里面 server.xml
.
但是 server.xml
在 docker 图像中不是特定于阶段的,因此无法在不同阶段更改它。
有没有人建议正确的方法是什么?
提前致谢
此致
如果您想从 server.env
设置 mp.config.profile
,您可能需要改为设置 MP_CONFIG_PROFILE
。
由于点在环境变量名称中无效,MP Config defines some mapping rules 从环境变量中查找配置时。它将检查请求的名称是否已将非字母数字字符转换为下划线,然后再次将所有字母转换为大写。