我的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}周围的引号也去掉,但没有成功。
这是由于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或更新版本。
你可能需要设置 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.