在Dockerfile中使用环境变量

有时候,在通过 Dockerfile 制作 docker 镜像的时候,需要根据环境变量来选择不同的源,例如指定 centos 的版本、切换网络请求地址等。这个时候,可以在 dockerfile 里面使用 ARG 指令,然后在 build 的时候使用 build-arg 参数即可:

  1. Dockerfile 文件中声明环境变量

    1
    2
    ARG request_domain # 定义环境变量
    ARG request_domain=127.0.0.1 # 定义环境变量并赋初始值
  2. 制作镜像时指定环境变量

    1
    docker build --build-arg request_domain=${request_domain} -t ${name} .

如果 Dockerfile 中声明了环境变量,但是 build 的时候没有使用 --build-arg <varname>=<value>,那么镜像不会被生成。如果指定了多余的环境变量,会有一个提示:

1
[Warning] One or more build-args [foo] were not consumed.