Docker鏡像優(yōu)化:從1.16GB到22.4MB,真強!
閱讀本文大概需要 3 分鐘。
來自:猿某某
靈活性:即使是最復雜的應用程序也可以容器化。 輕量化:容器共享主機內(nèi)核,使得它們遠比虛擬機高效。 便攜性:可以做到本地編譯,到處運行。 松耦合:容器自我封裝,一個容器被替換或升級不會打斷別的容器。 安全性:容器對進程進行了嚴格的限制和隔離,而無需用戶進行任何配置。
# 優(yōu)化過程
npx create-react-app app --template typescript

FROM node:10WORKDIR /appCOPY app /appRUN npm install -g webserver.localRUN npm install && npm run buildEXPOSE 3000CMD webserver.local -d ./build

第一步優(yōu)化:使用輕量化基礎鏡像

FROM node:10-alpineWORKDIR /appCOPY app /appRUN npm install -g webserver.localRUN npm install && npm run buildEXPOSE 3000CMD?webserver.local?-d?./build

第二步優(yōu)化:多階段構建
FROM node:10-alpine AS buildWORKDIR /appCOPY app /appRUN npm install && npm run buildFROM node:10-alpineWORKDIR /appRUN npm install -g webserver.localCOPY --from=build /app/build ./buildEXPOSE 3000CMD webserver.local -d ./build

FROM node:10-alpine AS buildWORKDIR /appCOPY app /appRUN npm install && npm run buildFROM nginx:stable-alpineCOPY --from=build /app/build /usr/share/nginx/htmlEXPOSE 80CMD ["nginx", "-g", "daemon off;"]


評論
圖片
表情
