gpt4 book ai didi

docker - 如何将环境变量值传递到我尝试运行的Docker容器中的文件中

转载 作者:行者123 更新时间:2023-12-02 19:41:29 32 4
gpt4 key购买 nike

假设我的Docker容器中有一个配置文件,位于此处:

/opt/jboss/bin/config.xml

Config文件如下所示:

<Database-Password>$PASSWORD</Database-Password>

我想在使用“--env-file”参数运行Docker容器时传递实际密码。

这是我传入的环境文件中的内容:
PASSWORD=MyPassword

我了解VARIABLE = VALUE语法。 “MyPassword”是Password变量的值。

docker 将如何知道如何使用此变量查找特定文件(/opt/jboss/bin/config.xml)并将其换出?我是否在配置文件中正确声明了变量?由于某种原因,我在查找此信息时遇到了麻烦。

最佳答案

简短的答案是-不一定。除非您有某种机制可以从主机环境中重写配置文件。

这在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")'

(这将需要同时安装 perlXML::Twig,因此可能会有更好的选择)

关于docker - 如何将环境变量值传递到我尝试运行的Docker容器中的文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35226444/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com