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