考慮下每次 CI 部署的流程

  1. 在構建服務器構建鏡像
  2. 把鏡像推至鏡像倉庫服務器,
  3. 在生產服務器拉取鏡像,啟動容器

顯而易見,鏡像體積過大造成傳輸效率低下,增加每次部署的延時。

即使,構建服務器與生產服務器在同一節點下,沒有延時的問題。減少鏡像體積也能夠節省磁盤空間

關于鏡像體積的過大,很大一部分是因為node_modules 臭名昭著的體積

但最后我們只需要 public 文件夾下的內容,對于源文件以及node_modules下文件,占用體積過大且不必要,造成浪費。
此時可以利用 Docker 的多階段構建,僅來提取編譯后文件

參考官方文檔 https://docs.docker.com/develop/develop-images/multistage-build/

FROM node:alpine as builder

ENV PROJECT_ENV production

# http-server 不變動也可以利用緩存
WORKDIR /code

ADD package.json /code
RUN npm install --production

ADD . /code
RUN npm run build

# 選擇更小體積的基礎鏡像
FROM nginx:alpine
COPY --from=builder /code/public /usr/share/nginx/html

此時,鏡像體積從 1G+ 變成了 50M+

使用 CDN

分析一下 50M+ 的鏡像體積,nginx:alpine 的鏡像是16M,剩下的40M是靜態資源。

如果把靜態資源給上傳到 CDN,則沒有必要打入鏡像了,此時鏡像大小會控制在 20M 以下

關于靜態資源,可以分類成兩部分

FROM node:alpine as builder

ENV PROJECT_ENV production

# http-server 不變動也可以利用緩存
WORKDIR /code

ADD package.json /code
RUN npm install --production

ADD . /code
# npm run uploadCdn 是把靜態資源上傳至 cdn 上的腳本文件
RUN npm run build && npm run uploadCdn


# 選擇更小體積的基礎鏡像
FROM nginx:alpine
COPY --from=builder code/public/index.html code/public/favicon.ico /usr/share/nginx/html/
COPY --from=builder code/public/static /usr/share/nginx/html/static
贊(4)
聲明:本網站發布的內容(圖片、視頻和文字)以原創、轉載和分享網絡內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。郵箱:3140448839@qq.com。本站原創內容未經允許不得轉載,或轉載時需注明出處:三五互聯知識庫 » 如何使用docker部署前端應用

登錄

找回密碼

注冊

主站蜘蛛池模板: 偷拍美女厕所尿尿嘘嘘小便 | 亚洲av成人一区在线| 亚洲天堂领先自拍视频网| 久久亚洲国产成人亚| 亚洲人黑人一区二区三区| 一二三四日本高清社区5| 国产精品制服丝袜白丝| 国产成人a∨激情视频厨房| 五月婷婷激情视频俺也去淫| 中文 在线 日韩 亚洲 欧美| 久久精品第九区免费观看| 亚洲国产精品综合久久2007| 黑人巨大无码中文字幕无码| AV人摸人人人澡人人超碰| 99精品国产中文字幕| 久久99九九精品久久久久蜜桃| 中国熟女仑乱hd| 国产自产一区二区三区视频| 精品国产精品午夜福利| 最近中文字幕完整版2019| 强开少妇嫩苞又嫩又紧九色| 亚洲国产日韩A在线亚洲| 92国产精品午夜福利免费| 欧美福利电影A在线播放| 国产成熟女人性满足视频| 亚洲AV无码破坏版在线观看| 成人亚洲一级午夜激情网| 熟女视频一区二区三区嫩草| 国产偷倩视频| 91麻豆精品国产91久| 国产丝袜肉丝视频在线| 精品国产高清中文字幕| 国产高潮又爽又刺激的视频| 亚洲乱理伦片在线观看中字| 在线天堂中文新版www| 久久这里只精品热免费99| 国产成人女人在线观看| 精品精品国产国产自在线| 国产精品人妻熟女男人的天堂| 玩弄丰满少妇人妻视频| 亚洲中文字幕无码久久精品1|