环境更换
环境变量(与声明的ENV
声明),也可以在特定指令作为变量用来被解释 Dockerfile
。转义也被处理,从字面上包含类似于变量的语法。
环境变量Dockerfile
用 $variable_name
or 来标注${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