8.9. 在 JBoss EAP OpenShift 平台上使用可引导 JAR
将应用打包为可引导 JAR 后,您可以在 JBoss EAP OpenShift 平台上运行应用。
- 要在 JBoss EAP OpenShift 平台上构建可引导 JAR 时使用自定义 Galleon 功能包和层,请参阅为 JBoss EAP 构建和使用自定义 Galleon 层。
-
使用
oc new-build
命令构建应用程序镜像时,请确保使用此 S2I 构建器镜像jboss-eap-xp4-openjdk11-openshift:latest
,而不是jboss-eap74-openjdk11-openshift:latest
。
在 OpenShift 上,您无法将 EAP Operator 自动事务恢复功能与可引导 JAR 搭配使用。计划在以后的 JBoss EAP XP 4.0.0 补丁版本中修复此技术限制。
先决条件
- 您已为 MicroProfile 配置开发 创建了 Maven 项目。
-
您已检查了最新的 Maven 插件版本,如
MAVEN_PLUGIN_VERSION.X.GA.Final-redhat-00001
,其中 MAVEN_PLUGIN_VERSION 是主版本,X 是 microversion。请参阅 /ga/org/wildfly/plugins/wildfly-jar-maven-plugin 的索引。 -
您已检查了最新的 Galleon 功能软件包版本,如
4.0.X.GA-redhat-BUILD_NUMBER
,其中 X 是 JBoss EAP XP 4 的微版本,BUILD_NUMBER 是 Galleon 功能软件包的构建号。X 和 BUILD_NUMBER 可以在 JBoss EAP XP 4.0.0 产品生命周期中演进。请参阅 /ga/org/jboss/eap/wildfly-galleon-pack 的索引。
流程中显示的示例指定以下属性:
-
${bootable.jar.maven.plugin.version}
用于 Maven 插件版本。 -
${jboss.xp.galleon.feature.pack.version}
用于 Galleon 功能软件包版本。
您必须在项目中设置这些属性。例如:
<properties> <bootable.jar.maven.plugin.version>6.1.2.Final-redhat-00001</bootable.jar.maven.plugin.version> <jboss.xp.galleon.feature.pack.version>4.0.0.GA-redhat-00002</jboss.xp.galleon.feature.pack.version> </properties>
<properties>
<bootable.jar.maven.plugin.version>6.1.2.Final-redhat-00001</bootable.jar.maven.plugin.version>
<jboss.xp.galleon.feature.pack.version>4.0.0.GA-redhat-00002</jboss.xp.galleon.feature.pack.version>
</properties>
流程
在
pom.xml
文件的<build
> 元素中添加以下内容。您必须指定任何 Maven 插件的最新版本,以及org.jboss.eap:wildfly-galleon-pack
Galleon 功能软件包的最新版本。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您必须在插件配置的
<
/> 元素,因此 JBoss EAP Maven JAR 插件可以识别您选择的 OpenShift 平台。configuration>
元素中包含 <cloud打包应用程序:
mvn package
$ mvn package
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
oc login
命令登录到您的 OpenShift 实例。 在 OpenShift 中创建一个新项目。例如:
oc new-project bootable-jar-project
$ oc new-project bootable-jar-project
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输入以下
oc
命令来创建应用程序镜像:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意OpenShift 将一组 CLI 脚本命令应用到可引导 JAR 配置文件,将其调整为云环境。您可以通过在 Maven 项目 /
target 目录中
打开bootable-jar-build-artifacts/generated-cli-script.txt
文件来访问此脚本。验证:
运行以下命令,查看可用的 OpenShift pod 列表并检查 pod 构建状态:
oc get pods
$ oc get pods
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证构建的应用程序镜像:
oc get is microprofile-config-app
$ oc get is microprofile-config-app
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出显示了构建的应用镜像详细信息,如名称和镜像存储库、标签等。对于此流程中的示例,镜像流名称和标签输出显示
microprofile-config-app:latest
。部署应用程序:
oc new-app microprofile-config-app oc expose svc/microprofile-config-app
$ oc new-app microprofile-config-app $ oc expose svc/microprofile-config-app
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要要为可引导 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"
$ oc new-app <_IMAGESTREAM_> -e JAVA_OPTS_APPEND="-Xlog:gc*:file=/tmp/gc.log:time -Dwildfly.statistics-enabled=true"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新建应用已创建并启动。应用程序配置作为新服务公开。
验证 :在终端中运行以下命令来测试应用程序的行为:
curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/json
$ curl http://$(oc get route microprofile-config-app --template='{{ .spec.host }}')/config/json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 预期输出:
{"result":"Hello jim"}
{"result":"Hello jim"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow