楔子
Docker 是現在開發的基本工,除了不想污染本地的環境以外,更重要的是可以把執行環境標準化,不會因為不同的環境就有無法執行的狀況,來試著了解一下吧。
網路的 docker 說明介紹蠻多的,就不多做說明了,就比較用講解的方式來自已可以寫一個所屬的 dockerfile 的實做羅輯。
環境架構
自行參考相關安裝
- MacOS
- linux
- windows
認識 images 與 tag
來試看看 ubuntu 的 base image 來看, (image name):(tag)
這是基本的格式,這個格式可以使用在 dockerfile 內。
ubuntu example
試題來試試
case I
Hint: (為 dockerfile 指令)
基礎的影像 base image (FROM)
每個程式都會歷經 build test(optional) runtime 的過程 (RUN CMD)
把原來的程式碼 copy 到 docker 內的 workdir (COPY WORKDIR)
安裝相關程式(dependency) (RUN)
試著寫出一個 NodeApp Dockerfile 提示: 下方為 build & runtime 的 bash 指令
npm run build
npm run start
dockerfile 步驟
# step 1: image source
# step 2: set workdir
# step 3: app install
# step 4: extra package if needed
EXPOSE 3000
# step 5: cmd
CMD ["npm", "run", "start"]
來試著提供下面的答案
# step 1: image source
FROM node:10.18.0-alpine3.11
# step 2: set workdir
WORKDIR /work
# step 3: app install
COPY . /work
# step 4: extra package if needed
RUN npm install && npm run build
EXPOSE 3000
# step 5: cmd
CMD ["npm", "run", "start"]
參考文獻