Docker Multistage Build 多映像建置
前言-不同階段出現不同的 Build 需求
我們開發過程中,可能會安裝一些 Dev Tool 可是這些 Dev Tool 在 Deployment Stage 是不必要的,那如果要拆分 Dev/Deploy 以往我們會分別開出不同的 Dockerfile
因此後來出現了比較適合開不同的 Dockerfile 的工具,Dapper 但是後來 Docker 在 17.05 推出 Multistage build,讓切分環境打包更方便了
ALIAS in multistage
在 Dockerfile 中我們可以用 FROM 來 Import base image 也可以用 AS 來給 base image alias,在 Multistage 中我們可以 import multiple image 並且透過 AS 來指定使用哪個 base image
1 | FROM python-3.10.5.apline as alpine |
COPY from multistage
剛剛已經 import multiple image 接者我們可以調用兩邊的環境來協助我們打包
1 | FROM python-3.10.5.apline as alpine |
參考資料
- 30 天與鯨魚先生做好朋友系列 第 17 篇-Multi-stage Build
- Dockerfile - Multi-stage build 筆記