8.8. 在 JBoss EAP OpenShift 平台上使用可引导 JAR
将应用打包为可引导 JAR 后,您可以在 JBoss EAP OpenShift 平台上运行该应用。
在 OpenShift 中,您不能将 EAP Operator 自动事务恢复功能用于可引导 JAR。计划在以后的 JBoss EAP XP 3.0.0 补丁版本中修复此技术限制。
先决条件
- 您已为 MicroProfile Config 开发 创建了 Maven 项目。
-
您已检查了最新的 Maven 插件版本,如
MAVEN_PLUGIN_VERSION.X.GA.Final-redhat-00001
,其中 MAVEN_PLUGIN_VERSION 是主版本,X 是 microversion。请参阅 /ga/org/wildfly/plugins/wildfly-jar-maven-plugin 的索引。 -
您已检查了最新的 Galleon 功能包版本,如
3.0.X.GA-redhat-BUILD_NUMBER
,其中 X 是 JBoss EAP XP 3 和 BUILD_NUMBER 的微版本,是 Galleon 功能包的构建号。X 和 BUILD_NUMBER 在 JBoss EAP XP 3.0.0 产品生命周期中都可能会演变。请参阅 /ga/org/jboss/eap/wildfly-galleon-pack 的索引。
流程中显示的示例指定以下属性:
-
用于 Maven 插件版本的
${bootable.jar.maven.plugin.version}
。 -
Gall
eon 功能包版本的 ${JBoss.xp.galleon.feature.pack.version}
。
您必须在项目中设置这些属性。例如:
<properties> <bootable.jar.maven.plugin.version>4.0.3.Final-redhat-00001</bootable.jar.maven.plugin.version> <jboss.xp.galleon.feature.pack.version>3.0.0.GA-redhat-00001</jboss.xp.galleon.feature.pack.version> </properties>
流程
将以下内容添加到
pom.xml
文件的<build> 元素
中。您必须指定任何 Maven 插件的最新版本,以及org.jboss.eap:wildfly-galleon-pack
Galleon 功能包的最新版本。例如:<plugins> <plugin> <groupId>org.wildfly.plugins</groupId> <artifactId>wildfly-jar-maven-plugin</artifactId> <version>${bootable.jar.maven.plugin.version}</version> <configuration> <feature-pack-location>org.jboss.eap:wildfly-galleon-pack:${jboss.xp.galleon.feature.pack.version}</feature-pack-location> <layers> <layer>jaxrs-server</layer> <layer>microprofile-platform</layer> </layers> <cloud/> </configuration> <executions> <execution> <goals> <goal>package</goal> </goals> </execution> </executions> </plugin> </plugins>
注意您必须将
<cloud/>
元素包含在插件配置的<configuration> 元素
中,以便 JBoss EAP Maven JAR 插件可以识别您选择 OpenShift 平台。打包应用程序:
$ mvn package
-
使用
oc login 命令登录
您的 OpenShift 实例。 在 OpenShift 中创建新项目:例如:
$ oc new-project bootable-jar-project
输入以下
oc
命令来创建应用程序镜像:$ mkdir target/openshift && cp target/microprofile-config-bootable.jar target/openshift 1 $ oc import-image ubi8/openjdk-11 --from=registry.redhat.io/ubi8/openjdk-11 --confirm 2 $ oc new-build --strategy source --binary --image-stream openjdk-11 --name microprofile-config-app 3 $ oc start-build microprofile-config-app --from-dir target/openshift 4
注意OpenShift 应用一组 CLI 脚本命令到可引导 JAR 配置文件,以将其调整到云环境。您可以通过打开 Maven 项目
/target 目录中的
bootable-jar-build-artifacts/generated-cli-script.txt
文件来访问此脚本。验证:
使用以下命令,查看可用的 OpenShift pod 列表并检查 pod 构建状态:
$ oc get pods
验证构建的应用程序镜像:
$ oc get is microprofile-config-app
输出显示了构建的应用镜像详细信息,如名称和镜像存储库、标签等。对于此流程中的示例,镜像流名称和标签输出会显示
microprofile-config-app:latest
。部署应用程序:
$ oc new-app microprofile-config-app $ oc expose svc/microprofile-config-app
重要要为可引导 JAR 提供系统属性,您必须使用
JAVA_OPTS_APPEND
环境变量。以下示例演示了JAVA_OPTS_APPEND
环境变量的用法:$ oc new-app <_IMAGESTREAM_> -e JAVA_OPTS_APPEND="-Xlog:gc*:file=/tmp/gc.log:time -Dwildfly.statistics-enabled=true"
创建一个新应用并启动。应用配置作为新服务公开。
验证 :在终端中运行以下命令来测试应用程序的行为:
$ curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/json
预期输出:
{"result":"Hello jim"}
其他资源
- 如需有关 MicroProfile 的信息,请参阅 MicroProfile 配置。
-
有关
ConfigSources
的信息,请参阅 默认 MicroProfile 配置属性。