亚洲一区精品自拍_2021年国内精品久久_男同十八禁gv在线观看_免费观看a级性爱黄片

Article / 文章中心

Dockerfile中COPY和ADD

發(fā)布時間:2021-11-19 點擊數(shù):689

一、COPY指令

COPY 指令從 <src> 復制新的文件或目錄,并將它們添加到 Docker 容器文件系統(tǒng)的 <dest> 的路徑下。

1.COPY兩種格式:

  • COPY [--chown=<user>:<group>] <src>... <dest>
  • COPY [--chown=<user>:<group>] ["<src>",... "<dest>"](包含空格的路徑需要使用這種格式)

2.COPY使用規(guī)則

復制指令必須遵循以下規(guī)則:

  1. <src>路徑必須在構(gòu)建的上下文中;您不能復制../something/something,因為docker構(gòu)建的第一步是將上下文目錄(和子目錄)發(fā)送到docker守護進程。
  2. 如果<src>是一個目錄,則復制該目錄的全部內(nèi)容,包括文件系統(tǒng)元數(shù)據(jù)。

二、ADD指令

1.ADD兩種格式:

  • ADD [--chown=<user>:<group>] <src>... <dest>
  • ADD [--chown=<user>:<group>] ["<src>",... "<dest>"](包含空格的路徑使用這種格式)


2. ADD 額外的功能 :

(1).ADD 指令可以讓你使用 URL 作為 <src> 參數(shù)。當遇到 URL 時候,可以通過 URL 下載文件并且復制到 <dest>。

(2).ADD 的另一個特性是自動解壓文件的能力。如果 <src> 參數(shù)是一個可識別壓縮格式(tar, gzip, bzip2, …)的本地文件(注:無法實現(xiàn)同時下載并解壓),就會被解壓到指定容器文件系統(tǒng)的路徑 <dest> 下。

3.ADD使用規(guī)則

  1. <src>路徑必須在構(gòu)建的上下文中;您不能添加../something/something,因為docker構(gòu)建的第一步是將上下文目錄(和子目錄)發(fā)送到docker守護進程。
  2. 如果<src>是一個URL并且<dest>沒有以斜杠結(jié)尾,則會從URL下載一個文件并復制到<dest>。
  3. 如果<src>是一個URL,并且<dest>以斜杠結(jié)尾,則從URL推斷文件名,并將文件下載到<dest>/<filename>。例如,添加http://example.com/foobar /將創(chuàng)建文件/foobar。URL必須有一個非平凡的路徑,以便在這種情況下可以找到適當?shù)奈募?http://example.com 不起作用)。
  4. 如果<src>是一個目錄,則復制該目錄的全部內(nèi)容,包括文件系統(tǒng)元數(shù)據(jù)。

三、實戰(zhàn)

  1. To add all files starting with “hom”:copy以"hom" 開頭的所有文件到鏡像的/mydir/目錄
 COPY hom* /mydir/
  1. The example below uses a relative path, and adds “test.txt” to <WORKDIR>/relativeDir/:  copy上下文中的test.txt到 工作目錄的relativeDir目錄
COPY test.txt relativeDir/

四、總結(jié)

對于不需要自動解壓的文件或目錄,應該始終使用COPY指令。

最后,認準一個原則:總是使用COPY(除非我們明確需要ADD)。