gpt4 book ai didi

bash - RUN 命令中字符串中的 Dockerfile ARG 替换

转载 作者:行者123 更新时间:2023-11-29 08:55:31 26 4
gpt4 key购买 nike

在我的 Dockerfile 中,我想替换字符串中的变量。

ARG w=world
RUN echo 'Hello $w'

我希望输出是 Hello world 但实际输出是 Hello $w

最佳答案

Docker 不会在 RUN 命令中扩展 ARG 值。相反,它将 ARG 作为环境变量注入(inject)。 shell 本身会扩展变量,我使用的所有 Linux shell 都会根据引号的类型表现不同。

单引号指示shell 不展开任何内容,您只需要对单引号和转义字符进行转义即可。双引号包括变量扩展以及许多其他转义字符。有关详细信息,请参阅 shell 的手册页。

所以您已经找到的解决方案是:

RUN echo "Hello $w"

关于bash - RUN 命令中字符串中的 Dockerfile ARG 替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50239236/

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