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 的底部附近,反之亦然。很少改變的部分(例如依賴性)應放在頂部。