在 Red Hat build of OpenJDK 11 中使用 Source-to-image for OpenShift
摘要
提供有关红帽构建的 OpenJDK 文档的反馈
要报告错误或改进文档,请登录到 Red Hat JIRA 帐户并提交问题。如果您没有 Red Hat Jira 帐户,则会提示您创建一个帐户。
流程
- 单击以下链接 以创建 ticket。
- 在 Summary 中输入问题的简短描述。
- 在 Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
- 点 Submit 创建问题,并将问题路由到适当的文档团队。
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 OpenShift 的 source-to-image 简介
OpenShift Container Platform 提供了一个 Source-to-image (S2I)过程来构建和运行应用程序。您可以在构建器镜像(如 JBoss EAP)之上附加应用的源代码。S2I 流程构建应用程序并将其分层到构建器镜像之上,以创建应用镜像。构建应用程序镜像后,您可以将其推送到 OpenShift 中的 集成 registry 或 独立 registry。
通过 S2I 用于 OpenShift,您可以在 OpenShift 上的容器化镜像中构建并运行基本 Java 应用,如 fat-jar
或 flat classpath
。
1.1. 镜像流定义
默认情况下,Red Hat OpenShift Container Platform 包含包含红帽构建的 OpenJDK 容器镜像的镜像流。
您可以将镜像流定义导入到新命名空间中,或重新创建它们。您可以在 openjdk
GitHub 页面上访问这些镜像流模板。
Red Hat OpenShift Container Platform 包含 java
作为镜像流,它遵循最新版本的容器镜像。此镜像流包含以下标签:
-
:latest
,它提供最新支持的红帽构建的 OpenJDK 版本。标签跟踪此镜像流的任何更新。 -
:11
,它提供最新的 JDK 11 镜像。 -
:8
,它提供最新的 JDK 8 镜像。
以前的镜像流及其标签基于 RHEL Universal Base Image (UBI)的最新版本。
如果要选择特定的 RHEL 或红帽构建的 OpenJDK 版本,请选择带有 openjdk-X-ubiY
格式的标签,其中 X
代表红帽构建的 OpenJDK 版本,Y
代表 RHEL 版本。
以下示例演示了采用以下格式的标签:
-
openjdk-8-ubi8
-
openjdk-11-ubi8
-
openjdk-17-ubi8
存在特定的镜像流来准确跟踪最新的容器镜像版本。这些镜像流采用 ubiX-openjdk-Y
格式,其中 X
指定 RHEL UBI 版本,Y
指定红帽构建的 OpenJDK 版本。以下示例演示了采用以下格式的镜像流:
-
ubi8-openjdk-8
-
ubi8-openjdk-11
-
ubi8-openjdk-17
这些镜像流的标签直接映射到镜像版本,如 1.11
、1.12
等。
第 2 章 开始前
初始设置
创建 OpenShift 实例。如需有关如何创建 OpenShift 实例的更多详细信息,请参阅 OpenShift 容器平台安装概述。
版本兼容性和支持
OpenShift Container Platform 版本 3.11、4.7 及以上 4.7 支持 OpenShift 镜像的 S2I。
如需有关 OpenShift Container Platform 当前支持级别的详细信息,请参阅 Red Hat OpenShift Container Platform 生命周期政策 和 Red Hat OpenShift Container Platform 生命周期政策(非当前版本)。
第 3 章 将 source-to-image 用于 OpenShift
您可以使用 Source-to-image (S2I) for OpenShift 镜像在 OpenShift 上运行自定义 Java 应用。
3.1. 使用 OpenShift 的 Source-to-image 构建和部署 Java 应用程序
要使用 Source-to-image (S2I) for OpenShift 镜像从 OpenShift 上的源构建和部署 Java 应用,请使用 OpenShift S2I 流程。
流程
运行以下命令并提供您的凭证来登录到 OpenShift 实例:
$ oc login
创建一个新项目
$ oc new-project <project-name>
使用 S2I 为 OpenShift 镜像创建新应用程序:
& lt;source-location > 是 GitHub 存储库的 URL,或到本地文件夹的路径。
$ oc new-app
<source-location>
例如:
$ oc new-app --context-dir=getting-started --name=quarkus-quickstart \ 'registry.access.redhat.com/ubi8/openjdk-11~https://github.com/quarkusio/quarkus-quickstarts.git#2.12.1.Final'
获取服务名称:
$ oc get svc
将服务作为路由公开,以便您可以从浏览器中使用服务器:
$ oc expose svc/ --port=8080
获取路由:
$ oc get route
-
使用 URL 在浏览器中访问应用。使用上一命令输出中的
HOST/PORT
字段的值。
其他资源
- 如需更多详细信息,请参阅 OpenShift 的 source-to-image 上的运行平面类路径 JAR。
3.2. 从二进制工件构建和部署 Java 应用程序
您可以使用二进制源功能在 OpenShift 上部署现有的 Java 应用。
该流程使用 undertow-servlet quickstart 在本地机器上构建 Java 应用程序。quickstart 使用 S2I 二进制源功能将生成的二进制 Artifacts 复制到 OpenShift 中。
先决条件
- 在本地机器上启用 Red Hat JBoss Enterprise Maven 存储库。
获取 JAR 应用存档,并在本地构建应用程序。
克隆 undertow-servlet 源代码:
$ git clone https://github.com/jboss-openshift/openshift-quickstarts.git
构建应用程序:
$ cd openshift-quickstarts/undertow-servlet/
$ mvn clean package [INFO] Scanning for projects... ... [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building Undertow Servlet Example 1.0.0.Final [INFO] ------------------------------------------------------------------------ ... [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.986 s [INFO] Finished at: 2017-06-27T16:43:07+02:00 [INFO] Final Memory: 19M/281M [INFO] ------------------------------------------------------------------------
在本地文件系统上准备目录结构。
将 deployments/ 子目录中的应用存档(其中主二进制构建目录)复制到标准部署文件夹(其中镜像构建在 OpenShift 中)。包含要部署的应用的 Web 应用数据的目录层次结构。
在本地文件系统和 deployments/ 子目录上为二进制构建创建一个主目录。将构建的 JAR 存档复制到 deployments/ 子目录中:
undertow-servlet]$ ls dependency-reduced-pom.xml pom.xml README src target
$ mkdir -p ocp/deployments
$ cp target/undertow-servlet.jar ocp/deployments/
流程
运行以下命令并提供您的凭证来登录到 OpenShift 实例:
$ oc login
创建一个新项目
$ oc new-project jdk-bin-demo
创建新的二进制构建,并指定镜像流和应用程序的名称:
$ oc new-build --binary=true \ --name=jdk-us-app \ --image-stream=java:11 --> Found image c1f5b31 (2 months old) in image stream "openshift/java:11" under tag "latest" for "java:11" Java Applications ----------------- Platform for building and running plain Java applications (fat-jar and flat classpath) --> Creating resources with label build=jdk-us-app ... imagestream "jdk-us-app" created buildconfig "jdk-us-app" created --> Success Application is not exposed. You can expose services to the outside world by executing one or more of the commands below: 'oc expose svc/jdk-us-app'
启动二进制构建。
指示
oc
可执行文件使用您在上一步中创建的二进制构建主目录,作为包含 OpenShift 构建的二进制输入的目录:$ oc start-build jdk-us-app --from-dir=./ocp --follow Uploading directory "ocp" as binary input for the build ... build "jdk-us-app-1" started Receiving source from STDIN as archive ... ================================================================== Starting S2I Java Build ..... S2I source build with plain binaries detected Copying binaries from /tmp/src/deployments to /deployments ... ... done Pushing image 172.30.197.203:5000/jdk-bin-demo/jdk-us-app:latest ... Pushed 0/6 layers, 2% complete Pushed 1/6 layers, 24% complete Pushed 2/6 layers, 36% complete Pushed 3/6 layers, 54% complete Pushed 4/6 layers, 71% complete Pushed 5/6 layers, 95% complete Pushed 6/6 layers, 100% complete Push successful
根据构建创建新的 OpenShift 应用程序:
$ oc new-app jdk-us-app --> Found image 66f4e0b (About a minute old) in image stream "jdk-bin-demo/jdk-us-app" under tag "latest" for "jdk-us-app" jdk-bin-demo/jdk-us-app-1:c1dbfb7a ---------------------------------- Platform for building and running plain Java applications (fat-jar and flat classpath) Tags: builder, java * This image will be deployed in deployment config "jdk-us-app" * Ports 8080/tcp, 8443/tcp, 8778/tcp will be load balanced by service "jdk-us-app" * Other containers can access this service through the hostname "jdk-us-app" --> Creating resources ... deploymentconfig "jdk-us-app" created service "jdk-us-app" created --> Success Run 'oc status' to view your app.
将服务作为路由公开。
$ oc expose svc/jdk-us-app route "jdk-us-app" exposed
获取路由:
$ oc get route
-
使用 URL (上一命令输出中的
HOST/PORT
字段的值)访问浏览器中的应用程序。
第 4 章 OpenShift 上 S2I 的工作流示例
4.1. 为 OpenShift 镜像远程调试 Java 应用
该流程中的示例显示,使用 S2I for OpenShift 镜像对 OpenShift 上部署的 Java 应用进行远程调试。您可以通过将环境变量 JAVA_DEBUG
的值设置为 true
和 JAVA_DEBUG_PORT
设置为 9009
来启用该功能。
如果 JAVA_DEBUG
变量设为 true,并且没有为 JAVA_DEBUG_PORT
变量提供值,则 JAVA_DEBUG_PORT
默认设为 5005
。
为部署准备
流程
运行以下命令并提供您的凭证来登录到 OpenShift 实例:
$ oc login
创建一个新项目
$ oc new-project js2i-remote-debug-demo
Deployment
您可以为新的和现有应用程序启用远程调试。
为新应用程序启用远程调试
流程
使用 S2I 用于 OpenShift 镜像和示例 Java 源代码创建一个新应用。在创建应用程序前,请确保设置
JAVA_DEBUG
和JAVA_DEBUG_PORT
环境变量:$ oc new-app --context-dir=getting-started --name=quarkus-quickstart \ 'registry.access.redhat.com/ubi8/openjdk-11~https://github.com/quarkusio/quarkus-quickstarts.git#2.12.1.Final' -e JAVA_DEBUG=true \ -e JAVA_DEBUG_PORT=9009
为现有应用程序启用远程调试
流程
切换到适当的 OpenShift 项目:
$ oc project js2i-remote-debug-demo
检索 deploymentconfig 的名称:
$ oc get dc -o name deploymentconfig/openshift-quickstarts
-
编辑 deploymentconfig 并添加
JAVA_DEBUG=true
和JAVA_DEBUG_PORT=9009
环境变量。 指定在路径
.spec.template.spec.containers
和Container
类型下编辑的对象:$ oc edit dc/openshift-quickstarts
注意在终端中启动编辑器,以运行
oc edit
命令。您可以通过定义环境的EDITOR
变量来更改启动的编辑器。
post-deployment
将本地调试端口连接到 pod 上的端口
流程
获取运行应用的 pod 的名称(Status Running):
显示
openshift-quickstarts-1-1uymm
作为 pod 名称的示例。$ oc get pods NAME READY STATUS RESTARTS AGE openshift-quickstarts-1-1uymm 1/1 Running 0 3m openshift-quickstarts-1-build 0/1 Completed 0 6m
使用 OpenShift 或 Kubernetes 端口转发功能来监听本地端口并转发到 OpenShift 容器集上的端口。<running-pod > 是 pod 的 NAME 字段的值,带有上一命令输出中的 Status "running" :
$ oc port-forward <running-pod> 5005:9009 Forwarding from 127.0.0.1:5005 -> 9009 Forwarding from [::1]:5005 -> 9009
注意在上例中,5005 是本地系统上的端口号,而
9009
是运行 OpenShift 镜像的 S2I 的 OpenShift 容器集的远程端口号。因此,以后对本地端口
5005
的调试连接被转发到运行 Java 虚拟机(JVM)的 OpenShift 容器集的端口9009
。
该命令可能会阻止您在终端中进一步输入。在这种情况下,启动一个新终端来执行后续步骤。
将调试器附加到应用程序
流程
将本地系统上的调试器附加到 S2I for OpenShift 镜像上运行的远程 JVM:
$ jdb -attach 5005 Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable Initializing jdb ... > ...
注意启动到远程 OpenShift pod 调试连接的本地调试器后,控制台中会显示与处理
5005
的连接类似的条目,其中发出了前面的 oc port-forward 命令。调试应用程序:
$ jdb -attach 5005 Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable Initializing jdb ... > threads Group system: (java.lang.ref.Reference$ReferenceHandler)0x79e Reference Handler cond. waiting (java.lang.ref.Finalizer$FinalizerThread)0x79f Finalizer cond. waiting (java.lang.Thread)0x7a0 Signal Dispatcher running Group main: (java.util.TimerThread)0x7a2 server-timer cond. waiting (org.jolokia.jvmagent.CleanupThread)0x7a3 Jolokia Agent Cleanup Thread cond. waiting (org.xnio.nio.WorkerThread)0x7a4 XNIO-1 I/O-1 running (org.xnio.nio.WorkerThread)0x7a5 XNIO-1 I/O-2 running (org.xnio.nio.WorkerThread)0x7a6 XNIO-1 I/O-3 running (org.xnio.nio.WorkerThread)0x7a7 XNIO-1 Accept running (java.lang.Thread)0x7a8 DestroyJavaVM running Group jolokia: (java.lang.Thread)0x7aa Thread-3 running >
其他资源
- 如需有关 Openshift 通用对象参考的更多信息,请参阅 OpenShift Common Object Reference 部分 Container。
- 有关将红帽 JBoss Developer Studio 的 IDE 调试器连接到运行 OpenShift 镜像的 S2I 的 OpenShift pod 的更多信息,请参阅配置和连接 IDE Debugger。
4.2. 为 OpenShift 在 source-to-image 上运行扁平类路径 JAR
该流程中的示例描述了在 OpenShift 的 S2I 上运行扁平类路径 java 应用程序的过程。
准备部署
流程
通过提供您的凭证来登录 OpenShift 实例:
$ oc login
创建一个新项目
$ oc new-project js2i-flatclasspath-demo
Deployment
流程
使用 S2I 为 OpenShift 镜像和 Java 源代码创建新应用程序:
$ oc new-app --context-dir=getting-started --name=quarkus-quickstart \ 'registry.access.redhat.com/ubi8/openjdk-11~https://github.com/quarkusio/quarkus-quickstarts.git#2.12.1.Final'
post-deployment
流程
获取服务名称:
$ oc get svc
将服务作为路由公开,以便从浏览器中使用它:
$ oc expose svc/openshift-quickstarts --port=8080
获取路由:
$ oc get route
-
使用 URL (上一命令输出中的
HOST/PORT
字段的值)访问浏览器中的应用程序。
第 5 章 参考
5.1. 版本详情
下表列出了此镜像中使用的技术版本。
技术 | 版本 |
---|---|
Red Hat build of OpenJDK | 11 |
Jolokia | 1.6.2 |
Maven | 3.6 |
5.2. 信息环境变量
以下信息环境变量旨在传达有关镜像的信息。不要修改这些变量。
变量名称 | 值 |
---|---|
HOME | /home/jboss |
JAVA_HOME | /usr/lib/jvm/java-11 |
JAVA_VENDOR | openjdk |
JAVA_VERSION | 11 |
JOLOKIA_VERSION | 1.6.2 |
LD_PRELOAD | libnss_wrapper.so |
MAVEN_VERSION | 3.6 |
NSS_WRAPPER_GROUP | /etc/group |
NSS_WRAPPER_PASSWD | /home/jboss/passwd |
5.3. 配置环境变量
配置环境变量旨在方便地调整镜像,而无需重新构建镜像,并应根据需要由用户设置。
变量名称 | 描述 | 默认值 | 示例值 |
---|---|---|---|
AB_JOLOKIA_CONFIG |
如果设置使用此文件(包括路径)为 Jolokia JVM 代理属性(如 Jolokia 参考手册中所述)。如果没有设置,将使用手册中定义的设置创建 | - | /opt/jolokia/custom.properties |
AB_JOLOKIA_DISCOVERY_ENABLED | 启用 Jolokia 发现。 | false | true |
AB_JOLOKIA_HOST | 要绑定到的主机地址。 | 0.0.0.0 | 127.0.0.1 |
AB_JOLOKIA_ID | 要使用的代理 ID,即容器 ID。 |
| openjdk-app-1-xqlsj |
AB_JOLOKIA_OFF | 如果设置禁用 Joloka 激活(即,回显空值)。 | 启用了 Jolokia | true |
AB_JOLOKIA_OPTS |
要附加到代理配置中的附加选项。它们应该使用 | - | backlog=20 |
AB_JOLOKIA_PASSWORD | 用于基本身份验证的密码。默认情况下关闭身份验证。 | - | mypassword |
AB_JOLOKIA_PORT | 要侦听的端口。 | 8778 | 5432 |
AB_JOLOKIA_USER | 用于基本身份验证的用户。 | jolokia | myusername |
AB_PROMETHEUS_ENABLE | 启用 Prometheus 代理的使用。 | - | True |
AB_PROMETHEUS_JMX_EXPORTER_PORT | 用于 Prometheus JMX Exporter 的端口。 | - | 9799 |
CONTAINER_CORE_LIMIT | 计算的核心限制,如 CFS 带宽控制 中所述。 | - | 2 |
CONTAINER_MAX_MEMORY | 分配给容器的内存限值。 | - | 1024 |
GC_ADAPTIVE_SIZE_POLICY_WEIGHT | 提供给当前垃圾收集器时间与之前垃圾收集器时间的权重。 | - | 90 |
GC_CONTAINER_OPTIONS | 指定要使用的 Java GC。此变量的值应包含必要的 JRE 命令行选项来指定所需的 GC,这将覆盖默认值。 | -XX:+UseParallelOldGC | -XX:+UseG1GC |
GC_MAX_HEAP_FREE_RATIO | GC 之后可用的最大堆百分比,以避免缩小。 | - | 40 |
GC_MAX_METASPACE_SIZE | 最大元空间大小。 | - | 100 |
GC_METASPACE_SIZE | 初始元空间大小。 | - | 20 |
GC_MIN_HEAP_FREE_RATIO | GC 后可用的最小堆百分比,以避免扩展。 | - | 20 |
GC_TIME_RATIO | 指定垃圾回收之外花费的时间(例如,应用程序执行花费的时间)与垃圾回收中花费的时间比。 | - | 4 |
HTTPS_PROXY | HTTPS 代理的位置。这优先于 http_proxy 和 HTTP_PROXY,并将用于 Maven 构建和 Java 运行时。 | - | myuser@127.0.0.1:8080 |
HTTP_PROXY | HTTP 代理的位置。这将用于 Maven 构建和 Java 运行时。 | - | 127.0.0.1:8080 |
JAVA_APP_DIR | 应用程序所在的目录。应用程序中的所有路径都相对于这个目录。 | - | myapplication/ |
JAVA_ARGS |
传递给 | - | - |
JAVA_CLASSPATH |
要使用的类路径。如果没有提供,启动脚本会检查文件 | - | - |
JAVA_DEBUG | 如果设置了远程调试,则会打开。 | false | true |
JAVA_DEBUG_PORT | 用于远程调试的端口。 | 5005 | 8787 |
JAVA_DIAGNOSTICS | 将其设置为在运行命令期间将一些诊断信息输出到标准输出。 | false | true |
JAVA_INITIAL_MEM_RATIO |
当 | 25 | 25 |
JAVA_LIB_DIR |
包含 Java jar 文件的目录以及包含 | JAVA_APP_DIR | - |
JAVA_MAIN_CLASS |
用作 | - | com.example.MainClass |
JAVA_MAX_INITIAL_MEM |
当 | 4096 | 4096 |
JAVA_MAX_MEM_RATIO |
当 | 50 | - |
JAVA_OPTS |
传递给 | - | -verbose:class |
JAVA_OPTS_APPEND | 要附加到 JAVA_OPTS 中生成的选项的用户指定的 Java 选项。 | - | -Dsome.property=foo |
LOGGING_SCRIPT_DEBUG |
设置为 true 以启用脚本调试。弃用 | true | True |
MAVEN_ARGS |
调用 Maven 时使用的参数,替换 | package hawt-app:build -DskipTests -e | -e -Popenshift -DskipTests -Dcom.redhat.xpaas.repo.redhatga package |
MAVEN_ARGS_APPEND | 其他 Maven 参数。 | - | -X -am -pl |
MAVEN_CLEAR_REPO |
如果设置,则 Maven 存储库会在工件构建后被删除。这可用于将创建的应用镜像的大小缩小到小,但可防止 增量构建。将被 | false | - |
MAVEN_LOCAL_REPO | 用作本地 Maven 存储库的目录。 | - | /home/jboss/.m2/repository |
MAVEN_MIRRORS |
如果设置,则启用多镜像支持,其他 | - | dev-one,qe-two |
MAVEN_MIRROR_URL | 用于检索工件的镜像的基本 URL。 | - | |
MAVEN_REPOS |
如果设置了多存储库支持,则启用多存储库支持,其他 | - | dev-one,qe-two |
MAVEN_S2I_ARTIFACT_DIRS |
要扫描构建输出的源目录的相对路径,该路径将复制到 | target | target |
MAVEN_S2I_GOALS |
使用 Maven 构建执行的以空格分隔的目标列表。例如, | package | 软件包安装 |
MAVEN_SETTINGS_XML |
要使用的自定义 Maven | - | /home/jboss/.m2/settings.xml |
NO_PROXY | 可直接访问的主机、IP 地址或域的逗号分隔列表。这将用于 Maven 构建和 Java 运行时。 | - | foo.example.com,bar.example.com |
S2I_ARTIFACTS_DIR | 使用 save-artifacts 脚本保留工件的位置挂载,这些脚本与增量构建一起使用。这不应该被最终用户覆盖。 | - |
|
S2I_DESTINATION_DIR |
S2I 挂载的根目录,如 | - |
|
S2I_ENABLE_INCREMENTAL_BUILDS | 不要删除源和中间构建文件,以便保存它们以用于将来的构建。 | true | true |
S2I_IMAGE_SOURCE_MOUNTS |
源目录中应包含的相对路径列表,这些路径应包含在镜像中。列表可以包括通配符,这些通配符使用 find 进行扩展。默认情况下,挂载的目录的内容与源文件夹类似处理,其中 | - |
|
S2I_SOURCE_CONFIGURATION_DIR |
包含要复制到产品配置目录的应用程序配置文件的相对路径,请参阅 | 配置 | 配置 |
S2I_SOURCE_DATA_DIR |
包含要复制到产品数据目录的应用程序数据文件的相对路径,请参阅 | data | data |
S2I_SOURCE_DEPLOYMENTS_DIR |
指向包含要复制到产品部署目录的目录的相对路径,请参阅 | 部署 | 部署 |
S2I_SOURCE_DIR | 要构建源代码的挂载位置。这不应该被最终用户覆盖。 | - | ${S2I_DESTINATION_DIR}/src} |
S2I_TARGET_CONFIGURATION_DIR |
复制到 | - | /opt/eap/standalone/configuration |
S2I_TARGET_DATA_DIR |
复制到 | - | /opt/eap/standalone/data |
S2I_TARGET_DEPLOYMENTS_DIR |
复制到位于 | - | /deployments |
http_proxy | HTTP 代理的位置。这优先于 HTTP_PROXY,用于 Maven 构建和 Java 运行时。 | - | |
https_proxy | HTTPS 代理的位置。这优先于 HTTPS_PROXY、http_proxy 和 HTTP_PROXY,用于 Maven 构建和 Java 运行时。 | - | myuser:mypass@127.0.0.1:8080 |
no_proxy | 可直接访问的主机、IP 地址或域的逗号分隔列表。这优先于 NO_PROXY,用于 Maven 构建和 Java 运行时。 | - | *.example.com |
prefix_MAVEN_MIRROR_ID | 用于指定镜像的 ID。如果省略,会生成一个唯一 ID。 | - | internal-mirror |
prefix_MAVEN_MIRROR_OF | 此条目镜像的存储库 ID。 | 外部:* | - |
prefix_MAVEN_MIRROR_URL | 镜像的 URL。 | - | |
prefix_MAVEN_REPO_DIRECTORY_PERMISSIONS | Maven 存储库目录权限。 | - | 775 |
prefix_MAVEN_REPO_FILE_PERMISSIONS | Maven 存储库文件权限。 | - | 664 |
prefix_MAVEN_REPO_HOST | Maven 存储库主机(如果没有使用完全定义的 URL,它将回退到服务)。 | - | repo.example.com |
prefix_MAVEN_REPO_ID | Maven 存储库 ID. | - | my-repo-id |
prefix_MAVEN_REPO_LAYOUT | Maven 存储库布局. | - | default |
prefix_MAVEN_REPO_NAME | Maven 存储库名称。 | - | my-repo-name |
prefix_MAVEN_REPO_PASSPHRASE | Maven 存储库密码短语. | - | maven1! |
prefix_MAVEN_REPO_PASSWORD | Maven 存储库密码。 | - | maven1! |
prefix_MAVEN_REPO_PATH | Maven 存储库路径(如果没有使用完全定义的 URL,它将回退到服务)。 | - | /maven2/ |
prefix_MAVEN_REPO_PORT | Maven 存储库端口(如果没有使用完全定义的 URL,它将回退到服务)。 | - | 8080 |
prefix_MAVEN_REPO_PRIVATE_KEY | Maven 存储库私钥。 | - | ${user.home}/.ssh/id_dsa |
prefix_MAVEN_REPO_PROTOCOL | Maven 存储库协议(如果没有使用完全定义的 URL,它将回退到服务)。 | - | http |
prefix_MAVEN_REPO_RELEASES_CHECKSUM_POLICY | Maven 存储库发布 checksum 策略。 | - | warn |
prefix_MAVEN_REPO_RELEASES_ENABLED | 启用 Maven 存储库发行版本。 | - | true |
prefix_MAVEN_REPO_RELEASES_UPDATE_POLICY | Maven 存储库发行版本更新策略。 | - | always |
prefix_MAVEN_REPO_SERVICE | Maven 存储库服务,以便在未指定 prefix_MAVEN_REPO_URL 中查找。 | - | buscentr-myapp |
prefix_MAVEN_REPO_SNAPSHOTS_CHECKSUM_POLICY | Maven 存储库快照校验和策略。 | - | warn |
prefix_MAVEN_REPO_SNAPSHOTS_ENABLED | 启用 Maven 存储库快照。 | - | true |
prefix_MAVEN_REPO_SNAPSHOTS_UPDATE_POLICY | Maven 存储库快照更新策略。 | - | always |
prefix_MAVEN_REPO_URL | Maven 存储库 URL (已定义)。 | - | |
prefix_MAVEN_REPO_USERNAME | Maven 存储库用户名。 | - | mavenUser |
5.3.1. 使用默认值配置环境变量
以下配置环境变量指定了默认值,可以覆盖。
变量名称 | 描述 | Defaul 值 |
---|---|---|
AB_JOLOKIA_AUTH_OPENSHIFT |
切换到 OpenShift TLS 通信的客户端身份验证。此参数的值可以是相对可分辨名称,它必须包含在提供的客户端的证书中。启用此参数将自动将 Jolokia 切换到 HTTPS 通信模式。默认 CA 证书设置为 | true |
AB_JOLOKIA_HTTPS |
切换到与 HTTPS 的安全通信。默认情况下,如果在 AB_JOLOKIA_OPTS 中未提供 | true |
AB_JOLOKIA_PASSWORD_RANDOM |
确定是否应该生成随机 | true |
AB_PROMETHEUS_JMX_EXPORTER_CONFIG | 用于 Prometheus JMX 导出器的配置路径。 | /opt/jboss/container/prometheus/etc/jmx-exporter-config.yaml |
S2I_SOURCE_DEPLOYMENTS_FILTER | 复制部署时要应用的以空格分隔的过滤器列表。默认为 *。 | * |
5.4. 公开的端口
下表列出了公开的端口。
端口号 | 描述 |
---|---|
8080 | HTTP |
8443 | HTTPS |
8778 | Jolokia Monitoring |
5.5. Maven 设置
使用 Maven 参数的默认 Maven 设置
MAVEN_ARGS
环境变量的默认值包含 -Dcom.redhat.xpaas.repo.redhatga
属性。此属性使用默认 jboss-settings.xml
文件中的 https://maven.repository.redhat.com/ga/
存储库激活配置集,该文件位于 OpenShift 镜像的 S2I 中。
当为 MAVEN_ARGS
环境变量指定自定义值时,如果没有指定自定义 source_dir/configuration/settings.xml
文件,则使用镜像中的默认 jboss-settings.xml
。
要指定在默认的 jboss-settings.xml 中使用哪些 Maven 存储库,有两个属性:
-
-Dcom.redhat.xpaas.repo.redhatga
属性使用 https://maven.repository.redhat.com/ga/ 软件仓库。 -
-Dcom.redhat.xpaas.repo.jbossorg
属性使用 https://repository.jboss.org/nexus/content/groups/public/ 存储库。
提供自定义 Maven 设置
要指定自定义 settings.xml
文件以及 Maven 参数,请创建 source_dir/configuration 目录
,并将设置'.xml' 文件放在其中。
示例路径应类似于: source_dir/configuration/settings.xml
。
更新于 2024-05-10