2017-05-31 85 views
0

我有一個Dockerfile這些命令:讓泊塢窗緩存運行結果

RUN apt-get -y update        #1 
RUN apt-get -y install sudo       #2 
RUN sudo apt-get -y update       #3 
RUN sudo apt-get -y upgrade       #4 
RUN sudo apt-get install -y sqlite3 libsqlite3-dev #5 

看起來好像泊塢窗不能緩存線#3#4

有沒有一種方法,我可以讓多克到以某種方式緩存這些結果?它每隔一段時間就會在一兩分鐘內更新/升級圖像,這會讓我發瘋。

回答

2

第一件事您應該避免RUN apt-get升級或dist-upgrade,因爲許多來自基礎映像的「基本」軟件包不會在非特權容器內升級。如果基本映像中包含的軟件包已過期,則應聯繫其維護人員。在Dockerfile &內

我認爲你需要運行apt-get只更新一次,始終與合併運行apt-get更新的apt-get安裝在同一個運行的語句像

RUN apt-get update && apt-get install -y \ 
    sudo \ 
    sqlite3 \ 
    libsqlite3-dev 
+0

這是完全錯誤的軟件包贏得在無特權的容器內升級......容器不需要特殊的包升級特權。運行'apt-get upgrade'是標準做法。 –

+0

@ Ricardo Branco我同意我們可以運行apt-get升級,但最佳實踐是說盡量避免運行apt-get升級或dist-upgrade – Rups

+0

http://crosbymichael.com/dockerfile-best-practices-take-2。 HTML – Rups