如何将环境variables值传递到docker容器中的文件我试图运行
假设我在我的docker容器中有一个configuration文件:
/opt/jboss/bin/config.xml
Config文件如下所示:
<Database-Password>$PASSWORD</Database-Password>
我想在使用“–env-file”参数运行docker容器时传递实际密码。
这是我传入的env文件中的内容:
PASSWORD=MyPassword
我理解VARIABLE = VALUE语法。 “MyPassword”是密码variables的值。
docker如何知道用这个variablesfind特定文件(/opt/jboss/bin/config.xml)并将其交换出来? 我是否正确地在configuration文件中声明variables? 出于某种原因,我很难find这些信息。
简短的回答是 – 它不一定。 除非你有一些机制来重写主机环境中的configuration文件。
这在shell脚本中非常简单 – 您可以像刚才那样引用它。
但是从这个意义上说,XML文件并不是“运行”的,所以它可能不会起作用。
举个例子 – 如果你想'编辑'你的xml,你可以用perl
来做 – 但是你将不得不安装更多的东西来实现它:
perl -MXML::Twig -e'XML::Twig -> new ( twig_handlers => { Database-Password => sub { $_ -> set_text ( $ENV{PASSWORD} ) } } ) -> parsefile_inplace("/opt/jboss/bin/config.xml")'
(这将需要perl
和XML::Twig
安装,所以可能有更好的select)
你的env文件中的语法应该是
variable=value
请参阅https://docs.docker.com/engine/reference/commandline/run/上的文档
提取
cat ./env.list TEST_FOO=BAR