第 4 章 参考
4.1. Source-to-Image(S2I)
Red Hat JBoss Web Server for OpenShift 镜像包括 S2I 脚本和 Maven。
4.1.1. 将 maven 工件存储库镜像与 JWS 用于 OpenShift
Maven 存储库包含构建工件和依赖项,如项目 jar、库 jar、插件或任何其他项目特定工件。它还定义了在执行 S2I 构建时从中下载工件的位置。除了使用 Maven Central 存储库 外,一些组织还会部署本地自定义存储库(mirror)。
使用本地镜像的好处是:
- 同步镜像的可用性,这是更接近且更快地进行的。
- 更好地控制存储库内容。
- 有可能在不同团队(开发者、CI)之间共享工件,而无需依赖公共服务器和存储库。
- 改进了构建时间。
Maven 存储库管理器 可以充当镜像的本地缓存。假设存储库管理器已在 http://10.0.0.1:8080/repository/internal/ 外部部署并可访问,S2I 构建可以使用此存储库。要使用内部 Maven 存储库,请将 MAVEN_MIRROR_URL
环境变量添加到应用的构建配置中。
对于新的构建配置,在 oc new-app
或 oc new-build
中使用 --build-env
选项:
$ oc new-app \ https://github.com/jboss-openshift/openshift-quickstarts.git#master \ --image-stream=jboss-webserver31-tomcat8-openshift \ --context-dir='tomcat-websocket-chat' \ --build-env MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/ \ --name=jws-wsch-app
对于现有的构建配置:
识别需要
MAVEN_MIRROR_URL
变量的构建配置:$ oc get bc -o name buildconfig/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 依赖项从存储库管理器下载,而不是从默认的公共存储库下载。构建完成后,镜像包含构建期间检索和使用的所有依赖项。
4.1.2. Red Hat JBoss Web Server for OpenShift 镜像中包含的脚本
run
- 运行 Catalina (Tomcat)
assemble
-
使用 Maven 构建源,创建软件包(
.war
),并将它移到$JWS_HOME/webapps
目录。
4.1.3. 用于 OpenShift 兼容环境变量的 JWS
可通过将环境变量包含 Source-to-Image build
命令(请参阅 第 4.1.1 节 “将 maven 工件存储库镜像与 JWS 用于 OpenShift”)来修改构建配置。Red Hat JBoss Web Server for OpenShift 镜像的有效环境变量是:
变量名称 | 描述 | 值示例 :leveloffset: +3 |
ARTIFACT_DIR |
| target |
HTTP_PROXY_HOST | 用于 Maven 的 HTTP 代理的主机名或 IP 地址。 | 192.168.1.1 |
HTTP_PROXY_PORT | 用于 Maven 的 HTTP 代理的 TCP 端口。 | 8080 |
HTTP_PROXY_USERNAME |
如果提供给 | myusername |
HTTP_PROXY_PASSWORD |
如果由 | mypassword |
HTTP_PROXY_NONPROXYHOSTS | 如果提供,配置的 HTTP 代理将忽略这些主机(以逗号分隔的主机、IP 地址或域列表)。 | *.example.net,some.example.org |
MAVEN_ARGS | 覆盖在构建期间提供给 Maven 的参数。 | -e -Popenshift -DskipTests -Dcom.redhat.xpaas.repo.redhatga package |
MAVEN_ARGS_APPEND | 在构建期间附加提供给 Maven 的用户参数。 | -Dfoo=bar |
MAVEN_MIRROR_URL | 用于配置的 Maven 镜像/存储库管理器的 URL。 | http://10.0.0.1:8080/repository/internal/ |
MAVEN_CLEAR_REPO | (可选)在构建后清除本地 Maven 存储库。 | true :leveloffset: 3 |