一千萬個為什麽

搜索

Dockerfile中的COPY和ZIP文件



使用 COPY 語句創建一個新的圖像層,對吧?

COPY files/foo.zip /tmp/

現在,為了節省空間,我可以使用 ADD 語句...用於GZ arhive。但 ADD 不支持自動提取ZIP文件。

所以 foo.zip 將懸掛在下層的某個地方。只是一個 RUN rm 語句沒有幫助。

你如何解決這個問題?

轉載註明原文: Dockerfile中的COPY和ZIP文件

一共有 1 個回答:

在運行 docker build 之前,可以在包裝器腳本中將 zip 文件轉換為 gz 文件。

甚至更進一步,首先提取存檔,然後使用COPY復制生成的文件夾內容。

When you are using archives from the internet on the other hand, ADD http://somewhere/file.gz /data will extract the downloaded file directly into that folder. If you have a problem with zip/gz format there, then use RUN curl -o somewhere/file.gz /tmp/file.gz && tar xzf /tmp/file.gz && rm /tmp/file.gz to only create a single layer without leaving the file behind.