在 Dockerfile 中,我从 curl 上传了一个配置文件,然后我需要对其进行一些编辑,这是一个示例结构:
client:
...
server:
applicationConnectors:
- type: http
port: 8989
# for security reasons bind to localhost
bindHost: localhost
requestLog:
appenders: []
adminConnectors:
- type: http
port: 8990
bindHost: localhost
我需要编辑这两个bindHost
参数,如果我可以在 期间将它们的值作为参数传递,那将是可取的docker build
,但我似乎没有在 Internet 或文档中找到任何内容。
如果我理解正确的问题,在您的 Dockerfile 命令中,将您的 curl 传送到 sed:
或者,您可以在下载文件后对其进行编辑:
您可以使用“--build-arg”将值传递给 Dockerfile,并在
RUN sed
调用中使用该值,例如注入 IP 地址参数:你用:
您还可以将构建参数转换为运行时环境变量:
如果您的配置语法可以执行环境中的变量替换(无需运行
sed
),那会更好。但这使得图像有点过于具体,您可以在启动容器时设置环境变量(
docker run
使用--env
,--env-list
)并使用这些值在作为容器条目的脚本中即时编辑配置文件点,除非您的配置语法(或启动参数)当然可以进行 envvar 替换。