Dockerfile 內容排序
- 基本影象宣告(
FROM) - 後設資料(例如
MAINTAINER,LABEL) - 安裝系統依賴項(例如
apt-get install,apk add) - 複製應用依賴項檔案(例如
bower.json,package.json,build.gradle,requirements.txt) - 安裝應用程式依賴項(例如
npm install,pip install) - 複製整個程式碼庫
- 設定預設執行時配置(例如
CMD,ENTRYPOINT,ENV,EXPOSE)
這些排序是為了使用 Docker 的內建快取機制優化構建時間。
經驗法則:
經常更改的部件(例如程式碼庫)應放在 Dockerfile 的底部附近,反之亦然。很少改變的部分(例如依賴性)應放在頂部。