11.9. 在 JBoss EAP OpenShift 平台上使用可引导 JAR
11.9.1. 使用 oc 命令进行二进制构建 复制链接链接已复制到粘贴板!
将应用打包为可引导 JAR 后,您可以在 JBoss EAP OpenShift 平台上运行应用。
在 OpenShift 上,您无法将 EAP Operator 自动事务恢复功能与可引导 JAR 搭配使用。
先决条件
- 您已为 MicroProfile 配置开发创建了 Maven 项目。例如:请参阅 MicroProfile 配置快速入门。
-
您已检查了最新的 Maven 插件版本,如
9.minor.micro.Final-redhat-XXXXX,其中 9 是主版本,次版本 为 微型 版本,X 是 Red Hat 构建号。例如:9.0.1.Final-redhat-00009。
流程中显示的示例指定以下属性:
-
${bootable.jar.maven.plugin.version}用于 Maven 插件版本。
您必须在项目中设置这些属性。例如:
<properties>
<bootable.jar.maven.plugin.version>9.0.1.Final-redhat-00009</bootable.jar.maven.plugin.version>
</properties>
流程
在
pom.xml文件的<build> 元素中添加以下内容。例如:<plugins> <plugin> <groupId>org.wildfly.plugins</groupId> <artifactId>wildfly-jar-maven-plugin</artifactId> <version>${bootable.jar.maven.plugin.version}</version> <configuration> <channels> <channel> <manifest> <groupId>org.jboss.eap.channels</groupId> <artifactId>eap-8.0</artifactId> </manifest> </channel> <channel> <manifest> <groupId>org.jboss.eap.channels</groupId> <artifactId>eap-xp-5.0</artifactId> </manifest> </channel> </channels> <feature-pack-location>org.jboss.eap.xp:wildfly-galleon-pack</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>注意您必须在插件配置的
</> 元素,因此 JBoss EAP Maven JAR 插件可以识别您选择的 OpenShift 平台。configuration>元素中包含 <cloud打包应用程序:
$ mvn package-
使用
oc login命令登录到您的 OpenShift 实例。 在 OpenShift 中创建一个新项目。例如:
$ oc new-project bootable-jar-project输入以下
oc命令来创建应用程序镜像:$ mkdir target/openshift && cp target/microprofile-config-bootable.jar target/openshift1 $ oc import-image ubi8/openjdk-17 --from=registry.redhat.io/ubi8/openjdk-17 --confirm2 $ oc new-build --strategy source --binary --image-stream openjdk-17 --name microprofile-config-app3 $ oc start-build microprofile-config-app --from-dir target/openshift4 注意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"}