从Dockerfile参考:
该
ARG指令定义了一个变量,用户可以在构建时使用docker build命令使用该变量将--build-arg<varname>=<value>标志传递给构建器。该
ENV指令将环境变量<key>设置为value<value>。从结果映像运行容器时,
使用设置的环境变量ENV将保留。
因此,如果您需要 构建时 自定义,
ARG则是最佳选择。
如果您需要运行时自定义(以不同的设置运行同一图像),
ENV则非常适合。
如果我想添加扩展名或20个(随机数)或任何其他可以启用的功能,
给定涉及的组合数量,
ENV最好在运行时设置这些功能。
但是您可以通过以下两种方式将两者结合:
- 使用特定的图像
ARG
- 用它
ARG
作为一个ENV
也就是说,使用包含以下内容的Dockerfile:
ARG varENV var=${var}然后,您可以
var在构建时(
docker build --build-argvar=xxx)构建具有特定值的映像,也可以运行具有特定运行时值(
docker run -e var=yyy)的容器



