COPY 複製檔案
格式:
COPY <來源路徑>... <目標路徑>
COPY ["<來源路徑1>",... "<目標路徑>"]
和 RUN
指令一樣,也有兩種格式,一種類似於指令行指令列,一種類似於函數叫用。
COPY
指令將從建構上下文目錄中 <來源路徑>
的檔案/目錄複製到新的一層的映像檔內的 <目標路徑>
位置。比如:
COPY package.json /usr/src/app/
<來源路徑>
可以是多個,甚至可以是萬用字元,其萬用字元規則要滿足 Go 的 filepath.Match
規則,如:
COPY hom* /mydir/
COPY hom?.txt /mydir/
<目標路徑>
可以是容器內的絕對路徑,也可以是相對於工作目錄的相對路徑(工作目錄可以用 WORKDIR
指令來指定)。目標路徑不需要事先建立,如果目錄不存在會在複製檔案前先行建立缺失目錄。
此外,還需要注意一點,使用 COPY
指令,原始檔的各種元資料都會保留。比如讀、寫、執行權限、檔案變更時間等。這個內容屬性對於映像檔訂製很有用。特別是建構相關檔案都在使用 Git 進行管理的時候。