2016-12-24 26 views
2

鑑於這種Dockerfile是什麼| 1意味着泊塢歷史

FROM debian:8.3 
ARG TEST=123 
RUN echo $TEST 

什麼是|1代表在泊塢歷史?

$ 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 

回答

3

in this issue如圖所示,這代表一個build-arg(使用構建圖像參數的個數即數)

一個很好的例子是http_proxy或源版本用於拉動的中間文件。
ARG指令讓Dockerfile作者定義用戶可在編譯時使用--build-arg標誌設置值:

$ docker build --build-arg HTTP_PROXY=http://10.20.30.2:1234 . 

此標誌允許你傳遞就像普通訪問編譯時變量環境變量在Dockerfile的RUN指令中。


這裏是構建ARGS通過1.10+去的例子:

[ 
    "|4 a=1 b=2 c=3 d=4 /bin/sh -c echo $a $b $c $d" 
] 
+0

謝謝你的。你有什麼背景_why_這是必要的還是有用的?爲什麼它的行爲與'ENV'變量不同(它似乎沒有得到'history'輸出中的'|')?我沒有理解這一點的實際應用,只是滿足我的好奇心。但是有沒有實際的應用程序讓那個'|號碼? –

+0

@SanderVerhagen它似乎代表了在運行時*使用的參數數量,而不是ENV,它保留在圖像中。 – VonC

+0

正如您從問題中的'history'輸出中可以看到的那樣,圖像中還存在'ARG'參數。 –