8.3. 配置环境变量

您可以配置以下环境变量来调整镜像,而无需重新构建镜像。

注意

有关此处未列出的其他环境变量,请参阅 JBoss EAP 文档

表 8.2. 配置环境变量

变量名称描述

AB_JOLOKIA_AUTH_OPENSHIFT

切换到 OpenShift TLS 通信的客户端身份验证。此参数的值可以是 truefalse 或一个相对可分名称,它必须包含在出示客户端的证书中。默认 CA 证书设置为 /var/run/secrets/kubernetes.io/serviceaccount/ca.crt

  • 设置为 false,以禁用 OpenShift TLS 通信的客户端身份验证。
  • 设置为 true,以使用默认 CA 证书和密钥主体为 OpenShift TLS 通信启用客户端身份验证。
  • 设置为一个相对可分辨的名称,如 cn=someSystem,以启用 OpenShift TLS 通信的客户端身份验证,但覆盖客户端主体。这种可分辨的名称必须包含在出示的客户端证书中。

AB_JOLOKIA_CONFIG

如果设置,请将此完全限定的文件路径用于 Jolokia JVM 代理属性,如 Jolokia 参考文档中所述。如果您设置了自己的 Jolokia 属性配置文件,则忽略本文档中的 Jolokia 设置。

如果没有设置,则使用 Jolokia 参考文档中定义的设置创建 /opt/jolokia/etc/jolokia.properties

示例值: /opt/jolokia/custom.properties

AB_JOLOKIA_DISCOVERY_ENABLED

启用 Jolokia 发现。

默认值为 false

AB_JOLOKIA_HOST

要绑定到的主机地址。

默认为 0.0.0.0

示例值: 127.0.0.1

AB_JOLOKIA_HTTPS

切换到与 HTTPS 的安全通信。

默认情况下,如果在 AB_JOLOKIA_OPTS 中未提供 serverCert 配置,则会生成自签名证书。

示例值: true

AB_JOLOKIA_ID

要使用的代理 ID。

默认值为 $HOSTNAME,它是容器 ID。

示例值: openjdk-app-1-xqlsj

AB_JOLOKIA_OFF

如果设置为 true,则禁用 Jolokia 激活,这会回显空值。

Jolokia 默认启用。

AB_JOLOKIA_OPTS

要附加到代理配置的额外选项。它们应该以 key=value, key=value, …​​ 格式提供。

示例值: backlog=20

AB_JOLOKIA_PASSWORD

基本身份验证的密码。

默认情况下,身份验证将被关闭。

示例值: mypassword

AB_JOLOKIA_PASSWORD_RANDOM

确定是否应该生成随机 AB_JOLOKIA_PASSWORD

设置为 true 以生成随机密码。生成的值保存在 /opt/jolokia/etc/jolokia.pw 文件中。

AB_JOLOKIA_PORT

要侦听的端口。

默认为 8778

示例值: 5432

AB_JOLOKIA_USER

用于基本身份验证的用户名。

默认为 jolokia

示例值: myusername

AB_PROMETHEUS_ENABLE

如果设为 true,则此变量激活 jmx-exporter java 代理,该代理会公开 Prometheus 格式指标。默认为 false

注意

MicroProfile 指标子系统是以 Prometheus 格式公开数据的首选方法。有关 MicroProfile 指标 susbsystem 的更多信息,请参阅 JBoss EAP 配置指南中的 Eclipse MicroProfile

AB_PROMETHEUS_JMX_EXPORTER_CONFIG

容器中的路径指向 jmx-exporter 代理要使用的特定与用于的 configuration.yaml,而不是默认的 configuration.yaml 文件。要查找包含其他配置文件的 S2I 机制的更多信息,请参阅 S2I Artifacts

AB_PROMETHEUS_JMX_EXPORTER_PORT

jmx-exporter 代理侦听的端口,侦听 Prometheus 服务器提取的端口。默认为 9799。代理侦听 localhost。通过为应用配置 DeploymentConfig API 使其包含此端点公开的服务,可以在容器外提供指标。

CLI_GRACEFUL_SHUTDOWN

如果设置为任何非零长度值,则镜像可防止使用 TERM 信号关闭,并且需要使用 JBoss EAP 管理 CLI 执行 shutdown 命令。

示例值: true

CONTAINER_HEAP_PERCENT

将最大 Java 堆大小设置为可用容器内存的百分比。

示例值: 0.5

CUSTOM_INSTALL_DIRECTORIES

在 S2I 过程中用于安装和配置镜像的工件的目录列表。

示例值: custom,shared

DEFAULT_JMS_CONNECTION_FACTORY

此值用于为 Jakarta Messaging 连接工厂指定默认 JNDI 绑定,如 jms-connection-factory='java:jboss/DefaultJMSConnectionFactory'

示例值: java:jboss/DefaultJMSConnectionFactory

DISABLE_EMBEDDED_JMS_BROKER

在 OpenShift 容器中使用嵌入的消息传递代理已被弃用。以后的发行版本中会删除对嵌入式代理的支持。

如果以下条件为 true,则会记录一个警告。

  • 容器配置为使用嵌入式消息传递代理。
  • 没有为容器配置远程代理。
  • 此变量未设置,或者设置了值为 false

如果这个变量包含在设置为 true 的值设为 true,则嵌入的消息传递代理将被禁用,且不会记录警告。

对于没有配置远程消息传递目的地的容器,请将这个变量设为 true

ENABLE_ACCESS_LOG

启用对标准输出频道的访问信息。

访问消息的日志记录是通过以下方法实现的:

  • JBoss EAP 6.4 OpenShift 镜像使用自定义 JBoss Web 访问日志。
  • 用于 OpenShift 镜像的 JBoss EAP 使用 Undertow AccessLogHandler

默认值为 false

INITIAL_HEAP_PERCENT

将初始 Java 堆大小设置为最大堆大小的百分比。

示例值: 0.5

JAVA_OPTS_APPEND

服务器启动选项。

示例值: -Dfoo=bar

JBOSS_MODULES_SYSTEM_PKGS_APPEND

以逗号分隔的软件包名称列表,该名称将附加到 JBOSS_MODULES_SYSTEM_PKGS 环境变量。

示例值: org.jboss.byteman

JGROUPS_CLUSTER_PASSWORD

用于验证节点的密码,以便可以加入 JGroups 集群。必需,在使用 ASYM_ENCRYPT JGroups 集群网络流量加密协议时。如果没有设置,则禁用身份验证,集群通信不会加密,并发出警告。可选,在使用 SYM_ENCRYPT JGroups 集群流量加密协议时。

示例值: mypassword

JGROUPS_ENCRYPT_KEYSTORE

在使用 SYM_ENCRYPT_SECRET 变量时,通过 JGROUPS_ENCRYPT_SECRET 变量指定的 secret 中的密钥存储文件名称。如果没有设置,集群通信不会加密,并发出警告。

示例值 :jceks

JGROUPS_ENCRYPT_KEYSTORE_DIR

在使用 SYM_ENCRYPT_SECRET 变量时,通过 JGROUPS_ENCRYPT_SECRET 变量指定的 secret 中的密钥存储文件目录路径。如果没有设置,集群通信不会加密,并发出警告。

示例值: /etc/jgroups-encrypt-secret-volume

JGROUPS_ENCRYPT_NAME

使用 SYM_ENCRYPT JGroups 集群流量加密协议时与服务器证书关联的名称。如果没有设置,集群通信不会加密,并发出警告。

值示例: jgroups2

JGROUPS_ENCRYPT_PASSWORD

使用 SYM_ENCRYPT JGroups 集群流量加密协议时用于访问密钥存储和证书的密码。如果没有设置,集群通信不会加密,并发出警告。

示例值: mypassword

JGROUPS_ENCRYPT_PROTOCOL

JGroups 协议用于加密集群流量。可以是 SYM_ENCRYPTASYM_ENCRYPT

默认为 SYM_ENCRYPT

示例值: ASYM_ENCRYPT

JGROUPS_ENCRYPT_SECRET

使用 SYM_ENCRYPT JGroups 集群流量加密协议时,包含 JGroups 密钥存储文件 用于保护 JGroups 通信的机密名称。如果没有设置,集群通信不会加密,并发出警告。

示例值: eap7-app-secret

JGROUPS_PING_PROTOCOL

用于节点发现的 JGroups 协议。可以是 dns.DNS_PINGkubernetes.KUBE_PING

MQ_SIMPLE_DEFAULT_PHYSICAL_DESTINATION

为了向后兼容,设置为 true,从而将 MyQueueMyTopic 用作物理目的地名称默认值,而不是 queue/MyQueuetopic/MyTopic

OPENSHIFT_DNS_PING_SERVICE_NAME

服务的名称会在服务器上公开用于 DNS 发现机制的 ping 端口。

示例值: eap-app-ping

OPENSHIFT_DNS_PING_SERVICE_PORT

DNS 发现机制的 ping 端口的端口号。如果没有指定,则会尝试从服务的 SRV 记录中发现端口号,否则使用默认的 8888

默认为 8888

OPENSHIFT_KUBE_PING_LABELS

为 Kubernetes 发现机制集群标签选择器。

示例值: app=eap-app

OPENSHIFT_KUBE_PING_NAMESPACE

为 Kubernetes 发现机制集群项目命名空间。

示例值: myproject

SCRIPT_DEBUG

如果设置为 true,请确保通过 -x 选项执行 Bash 脚本,并在执行这些命令时打印命令及其参数。