如何将 kaps-service 作为环境变量传递给我的 dockerfile
file.txt:- 匹配 $Match 名称产品
dockerfile:- 通过图片 ENV 匹配=kaps-service 复制文件.txt /etc/
要求是我想从 dockerfile 替换 file.txt 中的 $Match 值,或者我可以在启动 docker 容器时传递这个值吗?有办法吗?
答案 0 :(得分:1)
从 Dockerfile,您可以使用以下内容:
FROM image
ARG Match="kaps-service"
COPY file.txt /etc/
RUN sed -i 's/$Match/'$Match'/g' /etc/file.txt
最后一行将所有出现的 $Match 替换为“kaps-service”。这将在构建步骤期间发生,您可以使用 --build-arg
标志修改 Match 参数
如果您希望在运行步骤 (docker run) 中进行替换,您可以使用 RUN 命令并将其放入一些脚本中,该脚本将在您的应用程序之前执行此命令。它可以是这样的:
FROM image
WORKDIR /app
ENV Match="kaps-service"
COPY file.txt /etc/
COPY run .
CMD "./run"
其中 run
是:
#!/bin/bash
sed -i 's/$Match/'$Match'/g' /etc/file.txt
# run you app
当您使用 docker run
启动容器时会发生更改,您可以修改 Match 变量将 -e Match=something
添加到命令中。