Predefined ARGS(预先定义好的ARG变量)
Docker有一组预先定义ARG变量,我们可以在Dockerfile中不声明ARG变量的情况下使用这些变量。
HTTP_PROXY
http_proxy
HTTPS_PROXY
https_proxy
FTP_PROXY
ftp_proxy
NO_PROXY
no_proxy
为了使用这些变量,我们可以通过命令行标志传递值。
默认情况下,这些预先定义的变量被排除在docker history的输出之外。排除它们可降低在HTTP_PROXY变量中意外泄露敏感身份验证信息的风险。
思考下面的例子:Dockerfile使用了--build-arg HTTP_PROXY=http://user:pass@proxy.lon.example.com
在这种情况下,HTTP_PROXY变量的值在docker history中不可用,并且未缓存。如果想要更改位置,将代理服务器更改为http://user:pass@proxy.sfo.example.com,则后续的构建不会导致缓存丢失。
如果需要覆盖此行为,则可以在Dockerfile中添加ARG声明,如下所示:
当构建这个Dockerfile时,HTTP_PROXY会保留在docker history中,修改该变量的值会导致缓存失效。
PreviousUsing ARG Variables(使用ARG变量)NextAutomatic platform ARGs in the global scope(全局作用域中自动化平台的ARGS)
Last updated