如何将一个docker变量传递给jboss-cli.sh?

问题描述 投票:1回答:2

我的jboss cli文件中有一个变量,我们称它为${FOO}。

我可以看到这个变量是在我的Dockerfile中设置的,如果我。

RUN echo ${FOO}

我看到变量的值被打印出来了

我有一个foo.cli文件,其中包含了类似的一行。

/system-property=foo:add(value="${FOO}")

当我运行jboss-cli.sh foo.cli时

我得到了。

Cannot resolve expression ${FOO}.

有没有办法把Docker的变量传给jboss-cli.sh的文件参数?

我试着把系统属性行中${FOO}周围的引号也去掉,但没有成功。

docker jboss
2个回答
1
投票

这是由于CLI对值的处理和对名的处理不一样。简而言之,操作名、参数名、头名和值、命令名以及命令参数名都是自动解析的。参数和参数值则不然。为了解决这个问题,我们需要设置 resolve-parameter-values 归真 jboss-cli.xml.

例如:-

sed -i "s/<resolve-parameter-values>false<\/resolve-parameter-values>/\
<resolve-parameter-values>true<\/resolve-parameter-values>/" \
$JBOSS_HOME/bin/jboss-cli.xml

注意,上面的命令是为了一次性解决。从维护的角度来看,使用 sed 对于XML来说,一般来说不是一个好主意。如果你要自动处理这个问题,可以考虑使用 XPath 而不是。

:- 此功能需要WildFly 8.0.0.CR1或更新版本。


-1
投票

你可能需要设置 jboss-cli.xml<resolve-parameter-values>true<\/resolve-parameter-values>

$ sed -i "s/<resolve-parameter-values>false<\/resolve-parameter-values>/\
<resolve-parameter-values>true<\/resolve-parameter-values>/" \
$JBOSS_HOME/bin/jboss-cli.xml

src: https:/mirocupak.comusing-environment-variables-in-jboss-cli.

© www.soinside.com 2019 - 2024. All rights reserved.