環境更換
環境變量(與聲明的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