定义环境变量
ENV
定义环境变量
1 | ENV <key>=<value> ... # 但只能设置一个环境变量 ENV MY_VAR my-value |
使用环境变量
通过 ENV 指令可以声明环境变量,可以在以下指令中使用环境变量
- ADD
- COPY
- ENV
- EXPOSE
- FROM
- LABEL
- STOPSIGNAL
- USER
- VOLUME
- WORKDIR
- ONBUILD
使用环境变量的方式
有两种
- $variable_name
- ${variable_name}
${variable_name} 语法还支持以下指定的一些标准 bash 修饰符
- ${variable:-word}:表示如果设置了 variable,那么结果就是那个值;如果未设置变量,则结果将是 word
- ${variable:+word}:表示如果设置了 variable,则结果为 word,否则为空字符串
- 在所有情况下, word 可以是任何字符串,包括额外的环境变量
简单栗子
1 | FROM busybox |
覆盖环境变量的栗子
1 | ENV abc=hello |
def 的值是 hello,ghi 的值是 bye
注意
- 当容器从生成的镜像运行时,使用 ENV 设置的环境变量将持续存在
- 可以使用 docker inspect 查看值,并使用 docker run --env
= 更改它们
实际栗子
dockerfile
1 | FROM nginx EXPOSE 80 ENV test=test1234 |