Dockerfile ADD和COPY指令

百聯達發表於2017-05-10
當從Dockerfile 中 build Docker 映象時候,你可以選擇兩種指令來新增本地的目錄或者檔案到你的映象中:ADD和COPY。這兩種指令格式基本相同並且基本是同樣的東西.

ADD    <src>... <dest>
COPY   <src>... <dest>

在這兩種情況中,目錄或者檔案(<src>)被複制並新增到容器的檔案系統中的指定路徑(<dest>)

ADD指令可以讓你使用URL作為<src>引數。當遇到URL時候,可以透過URL下載檔案並且複製到<dest>。

ADD的另外一個特性是有能力自動解壓檔案。如果<src>引數是一個可識別的壓縮格式(tar, gzip, bzip2, etc)的本地檔案(所以實現不了同時下載並解壓),就會被解壓到指定容器檔案系統的路徑<dest>。

有趣的是,URL下載和解壓特性不能一起使用。任何壓縮檔案透過URL複製,都不會自動解壓。

Currently the ADD command is IMO far too magical. It can add local and remote files. It will sometimes untar a file and it will sometimes not untar a file. If a file is a tarball that you want to copy, you accidentally untar it. If the file is a tarball in some unrecognized compressed format that you want to untar, you accidentally copy it.

COPY不支援URL,也不會特別對待壓縮檔案。如果build 上下檔案中沒有指定解壓的話,那麼就不會自動解壓,只會複製壓縮檔案到容器中。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28624388/viewspace-2138821/,如需轉載,請註明出處,否則將追究法律責任。

相關文章