2016-09-18 44 views
-1

對於標記需要我創建一個dockerfile來構建我的項目容器的任務,但是我有一套相當複雜的任務,我需要以正確的方式一起工作,以便我的dockerfile對我有任何用處,所以我目前正在構建一個每次需要花費30分鐘的文件,只是爲了確定一些細微的變化是否會以正確的方式影響結果,所以我的問題是,有沒有更好的方法來做到這一點?我正在試圖製作完美的碼頭構建文件,我是否需要每次從頭構建它?

+2

你這裏沒有顯示dockerfile? – manojlds

+0

我的問題是關於這個過程,而不是什麼在dockerfile –

+1

在沒有Docker文件審查我會參考你的指導文檔:https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices /我遵循的另一種做法是基於我的「技術」堆棧創建基礎映像。這樣每個應用程序都有一個非常簡單且不復雜的Dockerfile –

回答

1

Dockerfile best practices,或更早的問題可能會有所幫助:Creating a Dockerfile - docker starts from scratch on each new build

根據我的經驗,全力打造每次意味着你的工作對碼頭工人的緩存機制,通常是通過在Dockerfile早期有COPY . .

如果複製到映像中的文件被用於驅動軟件包管理器或下載其他源,請嘗試僅複製腳本或需求文件,然後使用它,然後複製其餘源。

簡化蟒例如從最佳實踐重述鏈接:

COPY requirements.txt . 
RUN pip install -r requirements.txt 
COPY . . 

隨着該結構,只要requirements.txt不改變,第一和COPY以下RUN命令使用緩存層和重建是快多了。

0

第一個技巧是使用COPY/ADD來創建Docker構建時需要下載的工件。

第二個技巧是,您可以爲每個步驟創建一個Dockerfile並在接下來的步驟中重用它們。

例如,如果您想安裝postgres db,並在您的映像中安裝wildfly。您只能開始爲postgresDB創建一個Dockerfile,並構建它以創建您的postgres泊塢窗圖像。 然後創建另一個Dockerfile其重用你,Postgres的由

FROM your-postgres 
..... 

等圖像...

相關問題