将JAVA_选项添加到jboss-eap70-openshift
我们使用s2i和openshift origin 3.4。如何添加JAVA_选项?我不想覆盖它们将JAVA_选项添加到jboss-eap70-openshift,openshift,openshift-origin,s2i,Openshift,Openshift Origin,S2i,我们使用s2i和openshift origin 3.4。如何添加JAVA_选项?我不想覆盖它们 此解决方案已弃用此映像似乎没有指定JAVA_OPTS,因此您应该能够编辑部署配置并在其中添加环境变量。然后,JBoss的标准standalone.sh脚本将尊重它 将环境变量添加到dc的命令: # list your deployment config oc get dc # Set environment variable on your dc oc set env dc/<jboss-
此解决方案已弃用此映像似乎没有指定
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>
第二种选择
我想到了另一个解决办法。如果选中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中
要实现它,您需要设置env变量RUN_CONF=/path/To/my/script并装载此脚本-使用配置映射很容易实现
第三种选择
同样在standalone.sh
中,SERVER\u 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\u OPTS
的选项。有一些方法可以解决这个问题,但最简单的方法是在将选项传递给OpenShift时复制已有的选项。至少在可以扩展它而不仅仅是覆盖它之前 如中所述,您可以使用JAVA\u OPTS\u APPEND
环境变量这也是我的第一个想法,但这会覆盖默认的JAVA\u OPTS。启动时:JAVA_选项已在环境中设置;使用值覆盖默认设置:
非常感谢您的解决方案!
exec $JBOSS_HOME/bin/openshift-launch.sh
exec $JBOSS_HOME/bin/standalone.sh -c standalone-openshift.xml -bmanagement 127.0.0.1 $JBOSS_HA_ARGS ${JBOSS_MESSAGING_ARGS}