Dockerfile ,ADD詳細解讀

YatHo發表於2018-01-10

一、ADD指令

ADD指令的功能是將主機構建環境(上下文)目錄中的檔案和目錄、以及一個URL標記的檔案 拷貝到映象中。

其格式是: ADD  源路徑  目標路徑

如:

複製程式碼
#test
FROM ubuntu
MAINTAINER hello
ADD test1.txt test1.txt
ADD test1.txt test1.txt.bak
ADD test1.txt /mydir/
ADD data1  data1
ADD data2  data2
ADD zip.tar /myzip
複製程式碼

有如下注意事項:

1、如果源路徑是個檔案,且目標路徑是以 / 結尾, 則docker會把目標路徑當作一個目錄,會把原始檔拷貝到該目錄下。

如果目標路徑不存在,則會自動建立目標路徑。

2、如果源路徑是個檔案,且目標路徑是不是以 / 結尾,則docker會把目標路徑當作一個檔案。

如果目標路徑不存在,會以目標路徑為名建立一個檔案,內容同原始檔;

如果目標檔案是個存在的檔案,會用原始檔覆蓋它,當然只是內容覆蓋,檔名還是目標檔名。

如果目標檔案實際是個存在的目錄,則會原始檔拷貝到該目錄下。 注意,這種情況下,最好顯示的以 / 結尾,以避免混淆。

3、如果源路徑是個目錄,且目標路徑不存在,則docker會自動以目標路徑建立一個目錄,把源路徑目錄下的檔案拷貝進來。

如果目標路徑是個已經存在的目錄,則docker會把源路徑目錄下的檔案拷貝到該目錄下。

4、如果原始檔是個歸檔檔案(壓縮檔案,比如 .tar檔案),則docker會自動幫解壓。但是.tar.gz檔案是不會自動解壓的。

相關文章