gpt4 book ai didi

tomcat - 如何访问 Dockerfile 中声明的环境变量?

转载 作者:行者123 更新时间:2023-11-28 21:57:41 26 4
gpt4 key购买 nike

如何访问在 Dockerfile 中声明的环境变量 (USER)?

docker 文件:

(...)    
ENV USER="username"

例如,我必须在 Tomcat 的 context.xml 配置文件中读取它们:

<Resource type="javax.sql.DataSource"
(...)
username="$USER"
(...)
/>

有人知道语法吗?

最佳答案

如果没有任何操作,ENV 变量无法注入(inject)文件 context.xml

您可以执行以下操作:

1.

将一些众所周知的模式放入您的 context.xml 文件中,例如 username=USERNAME_TO_CHANGE 并在构建 docker 镜像期间更改它:

RUN sed -i "s/username=USERNAME_TO_CHANGE/username=$USER/g" context.xml

2.

使用envsubst这将用相应的值替换文件中的环境变量。为此,您需要在图像中安装 gettext 包,并将 context.xml 重命名为 context.xml-template 例如。之后,您只需在 Dockerfile 中执行以下操作:

RUN envsubst < context.xml-template > context.xml

关于tomcat - 如何访问 Dockerfile 中声明的环境变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48501662/

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