第 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-appoc 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

对于现有的构建配置:

  1. 识别需要 MAVEN_MIRROR_URL 变量的构建配置:

    $ oc get bc -o name
    
    buildconfig/jws
  2. MAVEN_MIRROR_URL 环境变量添加到 buildconfig/jws

    $ oc env bc/jws MAVEN_MIRROR_URL="http://10.0.0.1:8080/repository/internal/"
    
    buildconfig "jws" updated
  3. 验证构建配置是否已更新:

    $ oc env bc/jws --list
    
    # buildconfigs jws
    MAVEN_MIRROR_URL=http://10.0.0.1:8080/repository/internal/
  4. 使用 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

.war.ear、和 .jar 文件将复制到 deployments 目录中。

target

HTTP_PROXY_HOST

用于 Maven 的 HTTP 代理的主机名或 IP 地址。

192.168.1.1

HTTP_PROXY_PORT

用于 Maven 的 HTTP 代理的 TCP 端口。

8080

HTTP_PROXY_USERNAME

如果提供给 HTTP_PROXY_PASSWORD,请为 HTTP 代理使用凭证。

myusername

HTTP_PROXY_PASSWORD

如果由 HTTP_PROXY_USERNAME 提供,请为 HTTP 代理使用凭证。

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.