附录 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
环境变量添加到应用程序的新构建配置中。
流程
输入以下命令:
$ oc new-app \ https://github.com/jboss-openshift/openshift-quickstarts.git#main \ --image-stream=jboss-webserver60-openjdk17-tomcat10-openshift-ubi8:latest\ --context-dir='tomcat-websocket-chat' \ --build-env MAVEN_MIRROR_URL=\http://10.0.0.1:8080/repository/internal/ \ --name=jws-wsch-app
注意前面的命令假定已部署了存储库管理器,可通过
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
前面的命令会产生以下类型的输出:
buildconfig/jws
注意在前面的示例中,jws 是构建配置的名称。
将
MAVEN_MIRROR_URL
环境变量添加到buildconfig/jws
:$ oc env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/" buildconfig "jws" updated
验证构建配置是否已更新:
$ oc env bc/jws --list # buildconfigs jws MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/
-
使用
oc start-build
调度应用程序的新构建
在应用程序构建过程中,从存储库管理器下载 Maven 依赖项,而不是从默认公共存储库下载。构建过程完成后,镜像包含构建过程中检索和使用的所有依赖项。