5.3. 配置环境变量


配置环境变量旨在方便地调整镜像,而无需重新构建镜像,并应根据需要由用户设置。

表 5.3. 配置环境变量
变量名称描述默认值示例值

AB_JOLOKIA_CONFIG

如果设置使用此文件(包括路径)为 Jolokia JVM 代理属性(如 Jolokia 参考手册中所述)。如果没有设置,将使用手册中定义的设置创建 /opt/jolokia/etc/jolokia.properties。否则,本文档中的其余设置将被忽略。

-

/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。

$HOSTNAME

openjdk-app-1-xqlsj

AB_JOLOKIA_OFF

如果设置禁用 Joloka 激活(即,回显空值)。

启用了 Jolokia

true

AB_JOLOKIA_OPTS

要附加到代理配置中的附加选项。它们应该使用 key=value,key=value,…​ 格式指定。

-

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_proxyHTTP_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 应用的参数。

-

-

JAVA_CLASSPATH

要使用的类路径。如果没有提供,启动脚本会检查文件 JAVA_APP_DIR/classpath,并以字面方式使用其内容作为 classpath。如果此文件不存在 app dir 中的所有 jar,则会添加类:JAVA_APP_DIR/)。

-

-

JAVA_DEBUG

如果设置了远程调试,则会打开。

false

true

JAVA_DEBUG_PORT

用于远程调试的端口。

5005

8787

JAVA_DIAGNOSTICS

将其设置为在运行命令期间将一些诊断信息输出到标准输出。

false

true

JAVA_INITIAL_MEM_RATIO

JAVA_OPTS 中没有 -Xms 选项时,会使用它。这用于根据最大堆内存计算默认初始堆内存。如果容器中使用了没有内存约束的容器,则此选项不会起作用。如果有内存约束,则 -Xms 被设置为 -Xmx 内存的比率,如此处设置。默认值为 25,即 -Xmx 的 25% 用作初始堆大小。您可以通过将这个值设置为 0 来跳过此机制,在这种情况下,不会添加 -Xms 选项。

25

25

JAVA_LIB_DIR

包含 Java jar 文件的目录以及包含 classpath 的可选类路径文件。作为单行类路径(分隔)或者使用 jar 文件(一行列出)如果没有设置 JAVA_LIB_DIR,则设置为 JAVA_APP_DIR 的值。

JAVA_APP_DIR

-

JAVA_MAIN_CLASS

用作 java 参数的主要类。当给出此环境变量时,JAVA_APP_DIR 中的所有 jar 文件都会添加到类路径以及 JAVA_LIB_DIR 中。

-

com.example.MainClass

JAVA_MAX_INITIAL_MEM

JAVA_OPTS 中没有 -Xms 选项时,会使用它。这用于计算初始堆内存的最大值。如果容器中使用了没有内存约束的容器,则此选项不会起作用。如果有内存约束,则 -Xms 仅限于此处设置的值。默认值为 4096,这意味着计算的 -Xms 的值永远不会大于 4096。此变量的值以 MB 表示。

4096

4096

JAVA_MAX_MEM_RATIO

JAVA_OPTS 中不提供 -Xmx 选项时,会使用它。这用于根据容器限制计算默认最大堆内存。如果容器中使用了没有内存约束的容器,则此选项不会起作用。如果有内存约束,则 -Xmx 设置为容器可用内存的比率,如此处设置。默认值为 50,这意味着 50% 的可用内存被用作上限。您可以通过将这个值设置为 0 来跳过此机制,在这种情况下,不会添加 -Xmx 选项。

50

-

JAVA_OPTS

传递给 java 命令的 JVM 选项。

-

-verbose:class

JAVA_OPTS_APPEND

要附加到 JAVA_OPTS 中生成的选项的用户指定的 Java 选项。

-

-Dsome.property=foo

LOGGING_SCRIPT_DEBUG

设置为 true 以启用脚本调试。弃用 SCRIPT_DEBUG.

true

True

MAVEN_ARGS

调用 Maven 时使用的参数,替换 默认软件包 hawt-app:build -DskipTests -e。确保您运行 hawt-app:build 目标(当还没有绑定到 软件包 执行阶段),否则启动脚本将无法正常工作。

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 存储库会在工件构建后被删除。这可用于将创建的应用镜像的大小缩小到小,但可防止 增量构建。将被 S2I_ENABLE_INCREMENTAL_BUILDS 覆盖。

false

-

MAVEN_LOCAL_REPO

用作本地 Maven 存储库的目录。

-

/home/jboss/.m2/repository

MAVEN_MIRRORS

如果设置,则启用多镜像支持,其他 MAVEN_MIRROR Block 变量将作为前缀。例如,DEV_ONE_MAVEN_URLQE_TWO_MAVEN_MIRROR_URL

-

dev-one,qe-two

MAVEN_MIRROR_URL

用于检索工件的镜像的基本 URL。

-

http://10.0.0.1:8080/repository/internal/

MAVEN_REPOS

如果设置了多存储库支持,则启用多存储库支持,其他 MAVEN_REPO Block 变量将作为前缀。例如,DEV_ONE_MAVEN_REPO_URLQE_TWO_MAVEN_REPO_URL

-

dev-one,qe-two

MAVEN_S2I_ARTIFACT_DIRS

要扫描构建输出的源目录的相对路径,该路径将复制到 $DEPLOY_DIR

target

target

MAVEN_S2I_GOALS

使用 Maven 构建执行的以空格分隔的目标列表。例如,mvn $MAVEN_S2I_GOALS

package

软件包安装

MAVEN_SETTINGS_XML

要使用的自定义 Maven settings.xml 文件的位置。

-

/home/jboss/.m2/settings.xml

NO_PROXY

可直接访问的主机、IP 地址或域的逗号分隔列表。这将用于 Maven 构建和 Java 运行时。

-

foo.example.com,bar.example.com

S2I_ARTIFACTS_DIR

使用 save-artifacts 脚本保留工件的位置挂载,这些脚本与增量构建一起使用。这不应该被最终用户覆盖。

-

${S2I_DESTINATION_DIR}/artifacts}

S2I_DESTINATION_DIR

S2I 挂载的根目录,如 io.openshift.s2i.destination 标签指定。这不应该被最终用户覆盖。

-

/tmp

S2I_ENABLE_INCREMENTAL_BUILDS

不要删除源和中间构建文件,以便保存它们以用于将来的构建。

true

true

S2I_IMAGE_SOURCE_MOUNTS

源目录中应包含的相对路径列表,这些路径应包含在镜像中。列表可以包括通配符,这些通配符使用 find 进行扩展。默认情况下,挂载的目录的内容与源文件夹类似处理,其中 $S2I_SOURCE_CONFIGURATION_DIR$S2I_SOURCE_DATA_DIR$S2I_SOURCE_DEPLOYMENTS_DIR 的内容被复制到对应的目标目录中。或者,如果 install.sh 文件位于挂载点的根目录中,它将被执行。弃用 CUSTOM_INSTALL_DIRECTORIES.

-

extras/*`

S2I_SOURCE_CONFIGURATION_DIR

包含要复制到产品配置目录的应用程序配置文件的相对路径,请参阅 S2I_TARGET_CONFIGURATION_DIR

配置

配置

S2I_SOURCE_DATA_DIR

包含要复制到产品数据目录的应用程序数据文件的相对路径,请参阅 S2I_TARGET_DATA_DIR

data

data

S2I_SOURCE_DEPLOYMENTS_DIR

指向包含要复制到产品部署目录的目录的相对路径,请参阅 S2I_TARGET_DEPLOYMENTS_DIR

部署

部署

S2I_SOURCE_DIR

要构建源代码的挂载位置。这不应该被最终用户覆盖。

-

${S2I_DESTINATION_DIR}/src}

S2I_TARGET_CONFIGURATION_DIR

复制到 $S2I_SOURCE_DIR $S2I_SOURCE_CONFIGURATION_DIR 的文件的绝对路径。

-

/opt/eap/standalone/configuration

S2I_TARGET_DATA_DIR

复制到 $S2I_SOURCE_DIR/$S2I_SOURCE_DATA_DIR 中的文件的绝对路径。

-

/opt/eap/standalone/data

S2I_TARGET_DEPLOYMENTS_DIR

复制到位于 $S2I_SOURCE_DIR/$S2I_SOURCE_DEPLOYMENTS_DIR 的文件的绝对路径。此外,这是复制构建输出的目录。

-

/deployments

http_proxy

HTTP 代理的位置。这优先于 HTTP_PROXY,用于 Maven 构建和 Java 运行时。

-

http://127.0.0.1:8080

https_proxy

HTTPS 代理的位置。这优先于 HTTPS_PROXYhttp_proxyHTTP_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。

-

http://10.0.0.1:8080/repository/internal

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 (已定义)。

-

http://repo.example.com:8080/maven2/

prefix_MAVEN_REPO_USERNAME

Maven 存储库用户名。

-

mavenUser

5.3.1. 使用默认值配置环境变量

以下配置环境变量指定了默认值,可以覆盖。

表 5.4. 使用默认值配置环境变量
变量名称描述Defaul 值

AB_JOLOKIA_AUTH_OPENSHIFT

切换到 OpenShift TLS 通信的客户端身份验证。此参数的值可以是相对可分辨名称,它必须包含在提供的客户端的证书中。启用此参数将自动将 Jolokia 切换到 HTTPS 通信模式。默认 CA 证书设置为 /var/run/secrets/kubernetes.io/serviceaccount/ca.crt

true

AB_JOLOKIA_HTTPS

切换到与 HTTPS 的安全通信。默认情况下,如果在 AB_JOLOKIA_OPTS 中未提供 serverCert 配置,则会生成自签名证书。

true

AB_JOLOKIA_PASSWORD_RANDOM

确定是否应该生成随机 AB_JOLOKIA_PASSWORD。设置为 true 以生成随机密码。生成的值将写入 /opt/jolokia/etc/jolokia.pw

true

AB_PROMETHEUS_JMX_EXPORTER_CONFIG

用于 Prometheus JMX 导出器的配置路径。

/opt/jboss/container/prometheus/etc/jmx-exporter-config.yaml

S2I_SOURCE_DEPLOYMENTS_FILTER

复制部署时要应用的以空格分隔的过滤器列表。默认为 *

*

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.