Dockerfile 內容排序

  1. 基本影象宣告(FROM)
  2. 後設資料(例如 MAINTAINER,LABEL)
  3. 安裝系統依賴項(例如 apt-get install,apk add)
  4. 複製應用依賴項檔案(例如 bower.json,package.json,build.gradle,requirements.txt)
  5. 安裝應用程式依賴項(例如 npm install,pip install)
  6. 複製整個程式碼庫
  7. 設定預設執行時配置(例如 CMD,ENTRYPOINT,ENV,EXPOSE)

這些排序是為了使用 Docker 的內建快取機制優化構建時間。

經驗法則:

經常更改的部件(例如程式碼庫)應放在 Dockerfile 的底部附近,反之亦然。很少改變的部分(例如依賴性)應放在頂部。