當前Dockerfile如下:對於非常大的安裝文件,更好的Dockerfile命令是什麼?
FROM centos
ADD install_10GB.tgz /opt/tmp
RUN /opt/tmp/setup.bin && rm -rf /opt/tmp/*
當我運行docker build -t my_image .
,它需要太多的時間給TGZ文件發送到碼頭工人的緩存,我想縮短這一時間。 docker映像將會增加,因爲tgz太大,即使是包含的最終磁盤使用量也只有大約1GB。
我的問題是如何將圖像大小降低到接近1GB? 這個install_10GB.tgz是我自己生成的,如果我想保存一個圖層,我應該設置一個本地web服務器來做到這一點嗎?或者,還有其他的Dockerfile命令可以用來從我的本地磁盤抓取這個文件而不需要增加額外的層。
較新的docker版本有一個'--squash'選項用於build命令。這有助於圖像大小。但構建上下文的傳輸時間保持不變。 – Henry
你可以檢索你的tgz從網絡的某個地方的圖像?一個工件庫,代碼回購等?使用捲曲可以讓你保存圖層。 – BMitch
如果您的'tgz'沒有使用壓縮,那麼您可以使用'docker build --compress -t my_image .'但是仍然會將文件發送到上下文。所以,如果你想節省時間,你應該使用@BMitch提到的方法,即在構建過程中啓動一個簡單的服務器,該服務器可以提供該文件並使用'curl'或'wget'獲取文件。 –