|1 在 Docker 历史中意味着什么

San*_*gen 6 docker

鉴于此Dockerfile

FROM debian:8.3
ARG TEST=123
RUN echo $TEST
Run Code Online (Sandbox Code Playgroud)

|1Docker 历史上的代表什么?

$ docker history 2feee0d8320f
IMAGE               CREATED              CREATED BY                                      SIZE                COMMENT
2feee0d8320f        About a minute ago   |1 TEST=123 /bin/sh -c echo $TEST               0 B
ac4872d0de0b        About a minute ago   /bin/sh -c #(nop)  ARG TEST=123                 0 B
f50f9524513f        9 months ago         /bin/sh -c #(nop) CMD ["/bin/bash"]             0 B
<missing>           9 months ago         /bin/sh -c #(nop) ADD file:b5391cb13172fb513d   125.1 MB
Run Code Online (Sandbox Code Playgroud)

Von*_*onC 6

本期所示,这代表一个构建参数(即用于构建图像的参数数量)

一个很好的例子是http_proxy用于拉取中间文件的源版本。
ARG指令允许Dockerfile作者定义用户可以在构建时使用以下--build-arg标志设置的值:

$ docker build --build-arg HTTP_PROXY=http://10.20.30.2:1234 .
Run Code Online (Sandbox Code Playgroud)

这个标志允许你在 Dockerfile 的 RUN 指令中传递像常规环境变量一样访问的构建时变量。


这是一个构建 args 经历 1.10+ 的示例:

[
  "|4 a=1 b=2 c=3 d=4 /bin/sh -c echo $a $b $c $d"
]
Run Code Online (Sandbox Code Playgroud)