将 JAVA_OPTS 添加到 jboss-eap70-openshift
Add JAVA_OPTS to jboss-eap70-openshift
我们将 jboss-eap70-openshift 与 s2i 和 openshift origin 3.4 一起使用。如何添加 JAVA_OPTS?我不想覆盖它们
此解决方案已弃用 Not able to set options in JAVA_OPTS in JBoss openshift
此图像似乎没有指定 JAVA_OPTS
,因此您应该能够只编辑部署配置并在其中添加环境变量。然后它将受到 JBoss.
的标准 standalone.sh
脚本的尊重
将环境变量添加到 dc 的命令:
# list your deployment config
oc get dc
# Set environment variable on your dc
oc set env dc/<jboss-dc> JAVA_OPTS=<your env variables>
评论后更新
第一个选项
查看 JBoss 启动文件后,没有简单的方法可以做到这一点。
您可以使用以下方式下载启动脚本:
mkdir scripts
cd scripts
oc rsync <pod>:/opt/eap/bin .
您可以在 standalone.conf
文件中找到您的消息。该代码段非常简单,因此您可以在环境变量中重复相同的设置。
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms1303m -Xmx1303m -Djava.net.preferIPv4Stack=true"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.policy-permissions=true"
else
echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi
第二个选项
我想到了另一个解决方案。如果您检查 standalone.sh
文件,您可以看到以下几行:
# Read an optional running configuration file
if [ "x$RUN_CONF" = "x" ]; then
RUN_CONF="$DIRNAME/standalone.conf"
fi
if [ -r "$RUN_CONF" ]; then
. "$RUN_CONF"
fi
这意味着你可以通过你自己的初始化脚本,你首先执行standalone.conf
,然后读取一些环境变量并将其添加到JAVA_OPTS。
要实现它,您需要设置环境变量 RUN_CONF=/path/to/my/script 并挂载此脚本 - 使用配置映射很容易实现 https://docs.openshift.org/latest/dev_guide/configmaps.html#configmaps-use-case-consuming-in-volumes
第三个选项
同样在 standalone.sh
中,SERVER_OPTS
变量是根据传递给 standalone.sh
的参数创建的。然后这个变量被传递给起始 java,所以我相信你可以在那里隐藏你的选项。
OpenShift 在启动时启动 /bin/sh -c /usr/local/s2i/run
,此脚本启动
exec $JBOSS_HOME/bin/openshift-launch.sh
不幸的是,在这种情况下,必须更换 openshift-launch.sh
,因为它在启动时不需要更多参数 JBoss:
exec $JBOSS_HOME/bin/standalone.sh -c standalone-openshift.xml -bmanagement 127.0.0.1 $JBOSS_HA_ARGS ${JBOSS_MESSAGING_ARGS}
总结
此图像不提供扩展 JAVA_OPTS
的选项。有一些解决方法,但最简单的方法是在将它们传递给 OpenShift 时复制已经存在的选项。至少直到可以扩展它而不仅仅是覆盖为止。
如中所述,您可以使用JAVA_OPTS_APPEND
环境变量
我们将 jboss-eap70-openshift 与 s2i 和 openshift origin 3.4 一起使用。如何添加 JAVA_OPTS?我不想覆盖它们
此解决方案已弃用 Not able to set options in JAVA_OPTS in JBoss openshift
此图像似乎没有指定 JAVA_OPTS
,因此您应该能够只编辑部署配置并在其中添加环境变量。然后它将受到 JBoss.
standalone.sh
脚本的尊重
将环境变量添加到 dc 的命令:
# list your deployment config
oc get dc
# Set environment variable on your dc
oc set env dc/<jboss-dc> JAVA_OPTS=<your env variables>
评论后更新
第一个选项
查看 JBoss 启动文件后,没有简单的方法可以做到这一点。 您可以使用以下方式下载启动脚本:
mkdir scripts
cd scripts
oc rsync <pod>:/opt/eap/bin .
您可以在 standalone.conf
文件中找到您的消息。该代码段非常简单,因此您可以在环境变量中重复相同的设置。
if [ "x$JAVA_OPTS" = "x" ]; then
JAVA_OPTS="-Xms1303m -Xmx1303m -Djava.net.preferIPv4Stack=true"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.policy-permissions=true"
else
echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
fi
第二个选项
我想到了另一个解决方案。如果您检查 standalone.sh
文件,您可以看到以下几行:
# Read an optional running configuration file
if [ "x$RUN_CONF" = "x" ]; then
RUN_CONF="$DIRNAME/standalone.conf"
fi
if [ -r "$RUN_CONF" ]; then
. "$RUN_CONF"
fi
这意味着你可以通过你自己的初始化脚本,你首先执行standalone.conf
,然后读取一些环境变量并将其添加到JAVA_OPTS。
要实现它,您需要设置环境变量 RUN_CONF=/path/to/my/script 并挂载此脚本 - 使用配置映射很容易实现 https://docs.openshift.org/latest/dev_guide/configmaps.html#configmaps-use-case-consuming-in-volumes
第三个选项
同样在 standalone.sh
中,SERVER_OPTS
变量是根据传递给 standalone.sh
的参数创建的。然后这个变量被传递给起始 java,所以我相信你可以在那里隐藏你的选项。
OpenShift 在启动时启动 /bin/sh -c /usr/local/s2i/run
,此脚本启动
exec $JBOSS_HOME/bin/openshift-launch.sh
不幸的是,在这种情况下,必须更换 openshift-launch.sh
,因为它在启动时不需要更多参数 JBoss:
exec $JBOSS_HOME/bin/standalone.sh -c standalone-openshift.xml -bmanagement 127.0.0.1 $JBOSS_HA_ARGS ${JBOSS_MESSAGING_ARGS}
总结
此图像不提供扩展 JAVA_OPTS
的选项。有一些解决方法,但最简单的方法是在将它们传递给 OpenShift 时复制已经存在的选项。至少直到可以扩展它而不仅仅是覆盖为止。
如JAVA_OPTS_APPEND
环境变量