Red Hat JBoss Web Server for OpenShift
安装和使用 Red Hat JBoss Web Server for OpenShift
摘要
提供有关 Red Hat JBoss Web Server 文档的反馈 复制链接链接已复制到粘贴板!
要报告错误或改进文档,请登录到 Red Hat JIRA 帐户并提交问题。如果您没有 Red Hat Jira 帐户,则会提示您创建一个帐户。
流程
- 单击以下链接 以创建 ticket。
- 在 Summary 中输入问题的简短描述。
- 在 Description 中提供问题或功能增强的详细描述。包括一个指向文档中问题的 URL。
- 点 Submit 创建问题,并将问题路由到适当的文档团队。
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 Red Hat JBoss Web Server for OpenShift 复制链接链接已复制到粘贴板!
Red Hat JBoss Web Server (JWS) 5.7 的 Apache Tomcat 9 组件作为针对 Red Hat OpenShift 设计的容器化镜像提供。您可以使用此镜像构建、扩展和测试 Java Web 应用程序,以便在混合云环境中进行部署。
1.1. Red Hat JBoss Web Server 和 JWS for OpenShift 的不同 复制链接链接已复制到粘贴板!
用于 OpenShift 镜像的 JWS 与 Red Hat JBoss Web Server 的常规发行版本不同。
对于 OpenShift 的镜像和标准 JBoss Web 服务器部署,请考虑以下区别:
-
在用于 OpenShift 镜像的 JWS 中,
/opt/jws-5.7/目录位于JWS_HOME。 -
在用于 OpenShift 部署的 JWS 中,所有负载均衡都由 OpenShift 路由器而不是 JBoss Core Services
mod_cluster连接器或mod_jk连接器处理。
1.2. OpenShift 镜像版本兼容性和支持 复制链接链接已复制到粘贴板!
OpenShift 镜像通过不同的操作系统版本、配置和接口点进行测试,它们代表 Red Hat OpenShift Container Platform 客户正在使用的技术最常见组合。
要部署新应用程序时,您必须为 OpenShift 镜像和应用程序模板使用 5.7 版本 JWS。
用于 OpenShift 镜像和应用程序模板的 JWS 5.6 版本已弃用,不再接收更新。
1.3. JBoss Web Server 支持的构架 复制链接链接已复制到粘贴板!
JBoss Web Server 支持以下构架:
- x86_64 (AMD64)
- OpenShift 环境中的 IBM Z (s390x)
- OpenShift 环境中的 IBM Power (ppc64le)
您可以在所有支持的构架中使用 OpenJDK 11 的 JBoss Web Server 镜像。有关镜像的更多信息,请参阅 Red Hat Container Catalog。
1.4. 对红帽容器镜像进行健康检查 复制链接链接已复制到粘贴板!
所有 OpenShift Container Platform 镜像都关联了一个健康评级。您可以进入 Certfied 容器镜像 页,查找 JBoss Web Server 并选择版本 5.7 以查看 Red Hat JBoss Web Server 的健康等级。
您还可以对 OpenShift 容器执行健康检查,以测试容器的存活状态和就绪状态。
第 2 章 Red Hat JBoss Web Server for OpenShift 入门 复制链接链接已复制到粘贴板!
您可以从 Red Hat 容器 registry 中导入最新的 Red Hat JBoss Web Server for OpenShift 镜像流和模板。之后,您可以使用 OpenShift Source-to-Image (S2I) 流程的 JWS,使用现有的 maven 二进制文件或从源代码为 OpenShift 应用创建 JBoss Web 服务器。
在按照本文档中的说明进行操作前,您必须确保 OpenShift 集群已安装并根据先决条件进行了配置。有关安装和配置 OpenShift 集群的更多信息,请参阅 OpenShift Container Platform 的安装指南。
用于 OpenShift 应用程序模板的 JWS 为 Tomcat 9 发布。
2.1. 为 Red Hat Container Registry 配置身份验证令牌 复制链接链接已复制到粘贴板!
在导入并使用 Red Hat JBoss Web Server for OpenShift 镜像前,您必须首先确保已配置了身份验证令牌来访问 Red Hat Container Registry。
您可以使用 registry 服务帐户创建身份验证令牌。这意味着您不必在 OpenShift 配置中使用或存储您的红帽帐户用户名和密码。
流程
- 按照红帽客户门户网站中的说明,使用 registry 服务帐户创建身份验证令牌。
- 在令牌的 Token Information 页面中,点 OpenShift Secret 选项卡并下载包含令牌的 OpenShift secret 的 YAML 文件。
使用您下载的 YAML 文件,为 OpenShift 项目创建身份验证令牌机密。
例如:
oc create -f 1234567_myserviceaccount-secret.yaml
oc create -f 1234567_myserviceaccount-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要为 OpenShift 项目配置 secret,请输入以下命令:
oc secrets link default 1234567-myserviceaccount-pull-secret --for=pull oc secrets link builder 1234567-myserviceaccount-pull-secret --for=pull
oc secrets link default 1234567-myserviceaccount-pull-secret --for=pull oc secrets link builder 1234567-myserviceaccount-pull-secret --for=pullCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在前面的示例中,将
1234567-myserviceaccount替换为您在上一步中创建的 secret 的名称。
2.2. 导入 JBoss Web 服务器镜像流和模板 复制链接链接已复制到粘贴板!
您可以从 Red Hat Container Registry 中导入 Red Hat JBoss Web Server for OpenShift 镜像流和模板。您必须将 JDK 的最新 JBoss Web 服务器镜像流和模板导入到 OpenShift 项目的命名空间。
流程
- 使用您的客户门户网站凭证登录到 Red Hat Container Registry。如需更多信息,请参阅 Red Hat Container Registry 身份验证。
根据您使用的 JDK 版本,执行以下步骤:
如果使用 OpenJDK 8,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令导入 UBI8 JDK 8 镜像流、
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8以及命令中指定的所有模板。如果使用 OpenJDK 11,输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令导入 UBI8 JDK 11 镜像流、
jboss-webserver57-openjdk11-tomcat9-openshift-ubi8以及命令中指定的所有模板。
2.3. 为 OpenShift 镜像导入最新的 JWS 复制链接链接已复制到粘贴板!
您可以使用 import-image 命令导入 OpenShift 镜像的最新可用 JWS。红帽为 OpenJDK 8 和 OpenJDK 11 提供单独的 JWS for OpenShift 镜像。
先决条件
流程
根据您使用的 JDK 版本,执行以下步骤:
要使用 OpenJDK 8 OpenShift 镜像更新核心 JBoss Web Server 5.7 tomcat 9,请输入以下命令:
oc -n openshift import-image \ jboss-webserver57-openjdk8-tomcat9-openshift-ubi8:5.7.0
$ oc -n openshift import-image \ jboss-webserver57-openjdk8-tomcat9-openshift-ubi8:5.7.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要使用 OpenJDK 11 OpenShift 镜像更新核心 JBoss Web Server 5.7 tomcat 9,请输入以下命令:
oc -n openshift import-image \ jboss-webserver57-openjdk11-tomcat9-openshift-ubi8:5.7.0
$ oc -n openshift import-image \ jboss-webserver57-openjdk11-tomcat9-openshift-ubi8:5.7.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您导入的每个镜像末尾的 5.7.0 标签指的是镜像流中设置的 流 版本。
2.4. 用于 OpenShift S2I 流程的 JWS 复制链接链接已复制到粘贴板!
您可以使用带有应用程序模板参数和环境变量的 OpenShift Source-to-image (S2I) 进程,为 OpenShift 镜像运行和配置 JWS。
用于 OpenShift 镜像的 JWS 的 S2I 流程可以正常工作:
-
如果
configuration源目录包含 Mavensettings.xml文件,则settings.xml文件将移到新镜像的$HOME/.m2/目录中。 如果源存储库包含
pom.xml文件,则使用$MAVEN_ARGS环境变量的内容触发 Maven 构建。默认情况下,
package目标与openshift配置集一同使用,其中包括用于跳过测试的-DskipTests参数,以及用于启用 Red Hat GA 存储库的-Dcom.redhat.xpaas.repo.redhatga参数。成功 Maven 构建的结果被复制到
/opt/jws-5.7/tomcat/webapps目录中。这包括由$ARTIFACT_DIR环境变量指定的源目录中的所有 WAR 文件。$ARTIFACT_DIR的默认值为target/目录。您可以使用
$MAVEN_ARGS_APPEND环境变量修改 Maven 参数。-
deployments源目录中的所有 WAR 文件都复制到/opt/jws-5.7/tomcat/webapps目录中。 -
deployments源目录中的所有文件都复制到/opt/jws-5.7/tomcat/conf/目录中,不包括 Maven settings.xml 文件。 lib源目录中所有文件都复制到/opt/jws-5.7/tomcat/lib/目录中。注意如果要使用自定义 Tomcat 配置文件,请使用与常规 Tomcat 安装相同的文件名,如
context.xml和server.xml。
有关配置 S2I 流程以使用自定义 Maven 工件存储库镜像的更多信息,请参阅 Maven 工件存储库镜像以及 OpenShift 的 JWS。
2.5. 使用现有 Maven 二进制文件为 OpenShift 应用创建 JWS 复制链接链接已复制到粘贴板!
您可以使用现有的 Maven 二进制文件为 OpenShift 应用创建 JWS。您可以使用 oc start-build 命令在 OpenShift 上部署现有应用程序。
此流程演示了如何创建基于 tomcat-websocket-chat quickstart 示例的示例应用程序。
先决条件
已有您要部署在 JWS for OpenShift 中的应用程序的
.war,.ear, 或.jar文件,或已在本地构建了应用程序。例如,要在本地构建
tomcat-websocket-chat应用程序,请执行以下步骤:要克隆源代码,请输入以下命令:
git clone https://github.com/jboss-openshift/openshift-quickstarts.git
$ git clone https://github.com/jboss-openshift/openshift-quickstarts.gitCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置Red Hat JBoss Middleware Maven 存储库,参阅 配置 Red Hat JBoss Middleware Maven 存储库。
有关 Maven 存储库的更多信息,请参阅 Red Hat JBoss Ener Enterprise Maven Repository 网页。
要构建应用程序,请输入以下命令:
cd openshift-quickstarts/tomcat-websocket-chat/ mvn clean package
$ cd openshift-quickstarts/tomcat-websocket-chat/ $ mvn clean packageCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令会产生以下输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
流程
在本地文件系统中,为二进制构建创建一个源目录和一个
deployments子目录。例如,要为
tomcat-websocket-chat应用程序创建/ocp源目录和/deployments子目录,请输入以下命令:cd openshift-quickstarts/tomcat-websocket-chat/ mkdir -p ocp/deployments
$ cd openshift-quickstarts/tomcat-websocket-chat/ $ mkdir -p ocp/deploymentsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意源目录可以包含未包含在 Maven 二进制文件中的应用程序所需的任何内容。如需更多信息,请参阅 JWS for OpenShift S2I 流程。
将
.war、.ear或.jar二进制文件复制到deployments子目录。例如,要复制 tomcat-websocket-chat 应用程序的
.war文件,请输入以下命令:cp target/websocket-chat.war ocp/deployments/
$ cp target/websocket-chat.war ocp/deployments/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在上例中,
target/websocket-chat.war是您要复制的二进制文件的路径。源目录的
deployments子目录中的应用存档复制到 OpenShift 上构建的镜像的$JWS_HOME/tomcat/webapps/目录中。要成功部署应用程序,您必须确保包含 Web 应用数据的目录层次结构是正确的。如需更多信息,请参阅 JWS for OpenShift S2I 流程。登录到 OpenShift 实例:
oc login <url>
$ oc login <url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果需要,创建一个新项目。
例如:
oc new-project jws-bin-demo
$ oc new-project jws-bin-demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在前面的示例中,
jws-bin-demo是您要创建的项目名称。识别应用程序要使用的 JWS for OpenShift 镜像流:
oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' 'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令会产生以下类型的输出:
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意-n openshift选项指定要使用的项目。oc get is -n openshift命令从openshift项目中获取镜像流资源。创建新构建配置,并确保您指定镜像流和应用程序名称。
例如,要为 tomcat-websocket-chat 应用程序创建新构建配置,请执行以下操作:
oc new-build --binary=true \ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8:latest\*
$ oc new-build --binary=true \ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8:latest\* --name=jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在前面的示例中,
jws-wsch-app是 JWS for OpenShift 应用的 JWS 的名称。前面的命令会产生以下类型的输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动二进制构建。
例如:
oc start-build jws-wsch-app --from-dir=./ocp --follow
$ oc start-build jws-wsch-app --from-dir=./ocp --followCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在前面的示例中,
jws-wsch-app是 JWS for OpenShift 应用的名称,ocp是源目录的名称。前面的命令指示 OpenShift 使用您为 OpenShift 镜像构建的二进制输入创建的源目录。
前面的命令会产生以下类型的输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据镜像创建新 OpenShift 应用程序:
例如:
oc new-app jws-wsch-app
$ oc new-app jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在前面的示例中,
jws-wsch-app是 JWS for OpenShift 应用的 JWS 的名称。前面的命令会产生以下类型的输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 公开该服务以使应用程序可以被用户访问:
例如,要使
jws-wsch-app应用程序可以被访问,请执行以下步骤:检查要公开的服务名称:
oc get svc -o name
$ oc get svc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令会产生以下类型的输出:
service/jws-wsch-app
service/jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 公开服务:
oc expose svc/jws-wsch-app
$ oc expose svc/jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令会产生以下类型的输出:
route "jws-wsch-app" exposed
route "jws-wsch-app" exposedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
检索公开路由的地址:
oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-app
oc get routes --no-headers -o custom-columns='host:spec.host' jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 打开 Web 浏览器,再输入 URL 以访问应用。
例如,要访问示例
jws-wsch-app应用程序,请输入以下 URL:\http://<address_of_exposed_route>/websocket-chat注意在前面的示例中,将
<address_of_exposed_route>替换为您的部署的适当值。
2.6. 从源代码创建一个 JWS for OpenShift 应用程序 复制链接链接已复制到粘贴板!
您可以通过源代码创建一个 JWS for OpenShift 应用程序。
有关通过源代码创建新的 OpenShift 应用程序的详细信息,请参阅 OpenShift.com - 从源代码创建应用程序。
先决条件
- 应用程序数据结构正确。如需更多信息,请参阅 JWS for OpenShift S2I 流程。
流程
登录到 OpenShift 实例:
oc login <url>
$ oc login <url>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据需要创建新项目:
oc new-project <project-name>
$ oc new-project <project-name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在前面的示例中,将
<project-name>替换为您要创建的项目名称。识别应用程序要使用的 JWS for OpenShift 镜像流:
oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' '
$ oc get is -n openshift | grep ^jboss-webserver | cut -f1 -d ' 'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令会产生以下类型的输出:
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8
jboss-webserver57-openjdk8-tomcat9-openshift-ubi8Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意-n openshift选项指定要使用的项目。oc get is -n openshift命令从openshift项目中获取镜像流资源。使用 Red Hat JBoss Web Server for OpenShift 镜像从源代码创建新 OpenShift 应用程序:
oc new-app \ <source_code_location>\ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8\ --name=<openshift_application_name>
$ oc new-app \ <source_code_location>\ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8\ --name=<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如:
oc new-app \ \https://github.com/jboss-openshift/openshift-quickstarts.git#main \ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8\ --context-dir='tomcat-websocket-chat' \ --name=jws-wsch-app
$ oc new-app \ \https://github.com/jboss-openshift/openshift-quickstarts.git#main \ --image-stream=jboss-webserver57-openjdk8-tomcat9-openshift-ubi8\ --context-dir='tomcat-websocket-chat' \ --name=jws-wsch-appCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令将源代码添加到镜像中,并编译源代码。前面的命令还会创建构建配置和服务。
要公开应用程序,请执行以下步骤:
检查要公开的服务名称:
oc get svc -o name
$ oc get svc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令会产生以下类型的输出:
service/<openshift_application_name>
service/<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 公开服务:
oc expose svc/<openshift_application_name>
$ oc expose svc/<openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令会产生以下类型的输出:
route "<openshift_application_name>" exposed
route "<openshift_application_name>" exposedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
检索公开路由的地址:
oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>
oc get routes --no-headers -o custom-columns='host:spec.host' <openshift_application_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开 Web 浏览器,并输入以下 URL 来访问应用程序:
\http://<address_of_exposed_route>/<java_application_name>注意在前面的示例中,将
<address_of_exposed_route>和<java_application_name>替换为部署的相应值。
2.7. 在 tomcat/lib 目录中添加额外的 JAR 文件 复制链接链接已复制到粘贴板!
您可以使用 Docker 在 tomcat/lib 目录中添加其他 Java 存档 (JAR) 文件。
流程
启动 Docker 中的镜像:
docker run --network host -i -t -p 8080:8080 ImageURL
docker run --network host -i -t -p 8080:8080 ImageURLCopy to Clipboard Copied! Toggle word wrap Toggle overflow 查找
CONTAINER ID:docker ps | grep <ImageName>
docker ps | grep <ImageName>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将库复制到
tomcat/lib/目录中:docker cp <yourLibrary> <CONTAINER ID>:/opt/jws-5.7/tomcat/lib/
docker cp <yourLibrary> <CONTAINER ID>:/opt/jws-5.7/tomcat/lib/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将更改提交到新镜像:
docker commit <CONTAINER ID> <NEW IMAGE NAME>
docker commit <CONTAINER ID> <NEW IMAGE NAME>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建新镜像标签:
docker tag <NEW IMAGE NAME>:latest <NEW IMAGE REGISTRY URL>:<TAG>
docker tag <NEW IMAGE NAME>:latest <NEW IMAGE REGISTRY URL>:<TAG>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将镜像推送到 registry:
docker push <NEW IMAGE REGISTRY URL>
docker push <NEW IMAGE REGISTRY URL>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
您可以在 Red Hat JBoss Web Server pod 中添加 metering 标签,并使用 OpenShift Metering Operator 检查红帽订阅详情。
- 不要将 metering 标签添加到 Operator 或模板部署和管理的任何 pod 中。
- 您可以使用 OpenShift Container Platform 版本 4.8 及更早版本上的 Metering Operator 将标签应用到 pod。从 4.9 版本中,在没有直接替换的情况下,Metering Operator 不再可用。
Red Hat JBoss Web Server 可以使用以下 metering 标签:
-
com.company: Red_Hat -
rht.prod_name: Red_Hat_Runtimes -
rht.prod_ver: 2022-Q4 -
rht.comp: JBoss_Web_Server -
rht.comp_ver: 5.7.0 -
rht.subcomp: Tomcat 9 -
rht.subcomp_t: application
附录 A. S2I 脚本和 Maven 复制链接链接已复制到粘贴板!
Red Hat JBoss Web Server for OpenShift 镜像包括 S2I 脚本和 Maven。
A.1. Maven 工件存储库镜像以及 JWS for OpenShift 复制链接链接已复制到粘贴板!
Maven 存储库包含构建工件和依赖项,如项目 Java 存档(JAR)文件、库 JAR 文件、插件或其他特定于项目的工件。Maven 存储库还可定义在执行 source-to-image (S2I) 构建时可从中下载工件的位置。除了使用 Maven Central 存储库 外,一些机构还会部署本地自定义存储库(mirror)。
本地镜像提供以下优点:
- 通过同步的镜像,使地理位置更近,速度更快
- 对存储库内容进行更大的控制
- 能够在不同团队(开发人员和持续集成(CI))共享工件,而无需依赖公共服务器和存储库
- 改进了构建时间
Maven 存储库管理器可以充当本地缓存到镜像。如果已部署了存储库管理器,且可以在指定的 URL 位置访问外部,则 S2I 构建可以使用此存储库。您可以通过在应用的构建配置中添加 MAVEN_MIRROR_URL 环境变量来使用内部 Maven 存储库。
A.1.1. 使用内部 Maven 存储库进行新构建配置 复制链接链接已复制到粘贴板!
您可以在 oc new-app 命令或 oc new-build 命令中指定 --build-env 选项,将 MAVEN_MIRROR_URL 环境变量添加到应用程序的新构建配置中。
流程
输入以下命令:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意前面的命令假定已部署了存储库管理器,可通过
http://10.0.0.1:8080/repository/internal/访问。
A.1.2. 将内部 Maven 存储库用于现有构建配置 复制链接链接已复制到粘贴板!
您可以使用 oc env 命令指定构建配置的名称,将 MAVEN_MIRROR_URL 环境变量添加到应用程序的现有构建配置中。
流程
识别需要
MAVEN_MIRROR_URL变量的构建配置:oc get bc -o name
$ oc get bc -o nameCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前面的命令会产生以下类型的输出:
buildconfig/jws
buildconfig/jwsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在前面的示例中,jws 是构建配置的名称。
将
MAVEN_MIRROR_URL环境变量添加到buildconfig/jws:oc env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/"
$ oc env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/" buildconfig "jws" updatedCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证构建配置是否已更新:
oc env bc/jws --list buildconfigs jws
$ oc env bc/jws --list # buildconfigs jws MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
使用
oc start-build调度应用程序的新构建
在应用程序构建过程中,从存储库管理器下载 Maven 依赖项,而不是从默认公共存储库下载。构建过程完成后,镜像包含构建过程中检索和使用的所有依赖项。
A.2. Red Hat JBoss Web Server for OpenShift 镜像中包含的脚本 复制链接链接已复制到粘贴板!
Red Hat JBoss Web Server for OpenShift 镜像包括运行 Catalina 的脚本,并使用 Maven 创建和部署 .war 软件包。
run- 运行 Catalina (Tomcat)
assemble-
使用 Maven 构建 Web 应用源,创建
.war文件,并将.war文件移动到$JWS_HOME/tomcat/webapps目录。
A.3. JWS for OpenShift 数据源 复制链接链接已复制到粘贴板!
JWS for OpenShift 提供了三种数据源类型:
- 默认内部数据源
-
默认情况下,PostgreSQL、MySQL 和 MongoDB 数据源可以通过 Red Hat Registry 在 OpenShift 上获得。这些数据源不需要为镜像流配置额外的环境文件。要启用数据库被发现和用作数据源,您可以将
DB_SERVICE_PREFIX_MAPPING环境变量设置为 OpenShift 服务的名称。 - 其他内部数据源
- 这些数据源在 OpenShift 上运行,但默认情况下无法通过 Red Hat Registry 提供它们。添加到 OpenShift Secret 的环境文件提供了其他内部数据源的配置。
- 外部数据源
- 这些数据源不在 OpenShift 中运行。添加到 OpenShift Secret 的环境文件可以提供外部数据源的配置。
ENV_FILES 属性
您可以将数据源的环境变量添加到项目的 OpenShift Secret 中。您可以使用 ENV_FILES 属性在模板中调用这些环境文件。
DB_SERVICE_PREFIX_MAPPING 环境变量
数据源根据特定环境变量的值自动创建。DB_SERVICE_PREFIX_MAPPING 环境变量定义数据源的 JNDI 映射。
DB_SERVICE_PREFIX_MAPPING 变量允许的值是以逗号分隔的 POOLNAME-DATABASETYPE=PREFIX triplets 列表。每个 triplet 都包含以下值:
-
POOLNAME用作数据源中的pool-name。 -
DATABASETYPE是要使用的数据库驱动程序。 -
PREFIX是用来配置数据源的环境变量名称中的前缀。
对于每个在 DB_SERVICE_PREFIX_MAPPING 环境变量中定义的 POOLNAME-DATABASETYPE=PREFIX triplet,启动脚本都会创建一个单独的数据源,在运行镜像时执行。
A.4. 用于 OpenShift 兼容环境变量的 JWS 复制链接链接已复制到粘贴板!
您可以使用 source-to-image (S2I) build 命令包含环境变量来修改构建配置。如需更多信息,请参阅 Maven 工件存储库镜像和 JWS for OpenShift。
下表列出了 Red Hat JBoss Web Server for OpenShift 镜像的有效环境变量:
| 变量名称 | 显示名称 | 描述 | 值示例 |
|---|---|---|---|
| ARTIFACT_DIR | N/A |
此目录中的 | target |
| APPLICATION_NAME | 应用程序名称 | 应用程序的名称 | jws-app |
| CONTEXT_DIR | 上下文目录 | 构建 Git 项目中的路径;根项目目录为空 | tomcat-websocket-chat |
| GITHUB_WEBHOOK_SECRET | GitHub Webhook Secret | GitHub 触发器 secret | 表达式包括:[a-zA-Z0-9]{8} |
| GENERIC_WEBHOOK_SECRET | 通用 Webhook Secret | 通用构建触发器 secret | 表达式包括:[a-zA-Z0-9]{8} |
| HOSTNAME_HTTP | 自定义 HTTP 路由主机名 | http 服务路由的自定义主机名。为默认主机名留空 | <application-name>-<project>.<default-domain-suffix> |
| HOSTNAME_HTTPS | 自定义 HTTPS 路由主机名 | https 服务路由的自定义主机名。为默认主机名留空 | <application-name>-<project>.<default-domain-suffix> |
| IMAGE_STREAM_NAMESPACE | 镜像流命名空间 | 安装 Red Hat Middleware 镜像的 ImageStreams 的命名空间 | openshift |
| JWS_HTTPS_SECRET | Secret 名称 | 包含证书文件的 secret 名称 | jws-app-secret |
| JWS_HTTPS_CERTIFICATE | 证书名称 | secret 中的证书文件的名称 | server.crt |
| JWS_HTTPS_CERTIFICATE_KEY | 证书密钥名称 | secret 中证书密钥文件的名称 | server.key |
| JWS_HTTPS_CERTIFICATE_PASSWORD | 证书密码 | 证书密码 | P5ssw0rd |
| SOURCE_REPOSITORY_URL | Git 存储库 URL | 应用程序的 Git 源 URI | https://github.com/jboss-openshift/openshift-quickstarts.git |
| SOURCE_REPOSITORY_REFERENCE | Git 参考 | Git 分支/标签参考 | 1.2 |
| IMAGE_STREAM_NAMESPACE | 镜像流命名空间 | 安装 Red Hat Middleware 镜像的 ImageStreams 的命名空间 | openshift |
| MAVEN_MIRROR_URL | Maven Mirror URL | 用于配置的 Maven 镜像/存储库管理器的 URL。 | http://10.0.0.1:8080/repository/internal/ |
附录 B. 用于 OpenShift 的 JWS 上的 valves 复制链接链接已复制到粘贴板!
您可以定义以下环境变量,将 valve 组件插入到关联的 Catalina 容器的请求处理管道中。
| 变量名称 | 描述 | 值示例 | 默认值 |
|---|---|---|---|
| ENABLE_ACCESS_LOG | 启用 Access Log Valve 将访问信息记录到标准输出频道。 | true | false |
附录 C. 检查 OpenShift 日志 复制链接链接已复制到粘贴板!
您可以使用 oc logs 命令查看 OpenShift 日志或控制台为正在运行的容器提供的日志。
流程
输入以下命令:
oc logs -f <pod_name> <container_name>
$ oc logs -f <pod_name> <container_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在前面的命令中,将
<pod_name>和<container_name>替换为您的部署的适当值。访问日志保存在
/opt/jws-5.7/tomcat/logs/目录中。