docker --Dockerfile--一些语法

时间:2024-04-29 22:58:26

环境更换

环境变量(与声明的ENV声明),也可以在特定指令作为变量用来被解释 Dockerfile。转义也被处理,从字面上包含类似于变量的语法。

环境变量Dockerfile用 $variable_nameor 来标注${variable_name}。他们被对等地对待,大括号语法通常用于解决变量名称没有空白的问题,如${foo}_bar

${variable_name}语法还支持一些标准bash 修饰符,如下所示:

  • ${variable:-word}表示如果variable设置,则结果将是该值。如果variable没有设置,那么word将是结果。
  • ${variable:+word}表示如果variable设置则返回word结果,否则结果为空字符串。

在任何情况下,word都可以是任何字符串,包括其他环境变量。

可以通过\在变量之前添加一个转义来逃避:\$foo或者\${foo},例如,将分别转换为文字$foo${foo}文字。

示例(在之后显示解析的表示#):

FROM busybox
ENV foo /bar
WORKDIR ${foo} # WORKDIR /bar
ADD . $foo # ADD . /bar
COPY \$foo /quux # COPY $foo /quux
参考文献:https://docs.docker.com/engine/reference/builder/#cmd