在 Dockerfile 中使用来自 docker-compose build --build-arg 的参数



我希望能够在构建时使用sed在构建时自动替换文件中的HOSTNAME来构建映像:

这是我的 Dockerfile:

FROM ...            
RUN sed -i -- 's/0.0.0.0/$HOSTNAME/g' index.html

这是我的命令:

docker-compose build --build-arg HOSTNAME='justanotherhostname.com'

当我检查结果index.html时,我的路径从这里开始:

path = 'http://0.0.0.0/'

对此:

path = 'http://$HOSTNAME/'

而不是这个:

path = 'http://justanotherhostname.com/'

我做错了什么?

首先,您需要在 Dockerfile 中引入构建参数(以防丢失(。此外,如果要将0.0.0.0替换为$HOSTNAME的内容,可以尝试将 sed 命令括在双引号中。

FROM ...
ARG HOSTNAME            
RUN sed -i -- "s/0.0.0.0/$HOSTNAME/g" index.html

最新更新