ARG 建構參數
格式:ARG <參數名>[=<預設值>]
建構參數和 ENV
的效果一樣,都是設定環境變數。所不同的是,ARG
所設定的建構環境的環境變數,在將來容器執行時是不會存在這些環境變數的。但是不要因此就是用 ARG
儲存密碼之類的資訊,因為 docker history
還是可以看到所有值的。
Dockerfile
中的 ARG
指令是定義參數名稱,以及定義其預設值。該預設值可以在建構指令 docker build
中用 --build-arg <參數名>=<值>
來覆寫。
在 1.13 之前的版本,要求 --build-arg
中的參數名,必須在 Dockerfile
中用 ARG
定義過了,換句話說,就是 --build-arg
指定的參數,必須在 Dockerfile
中使用了。如果對應參數沒有被使用,則會報錯結束建構。從 1.13 開始,這種嚴格的限制被放開,不再報錯結束,而是顯示警告資訊,並繼續建構。這對於使用 CI 系統,用同樣的建構流程建構不同的 Dockerfile
的時候比較有說明,避免建構指令必須根據每個 Dockerfile 的內容修改。