摘要:少啰嗦,先看代碼分析原理使用的鏡像,顯著縮小鏡像大小使用命令,清空緩存,再次減少包占用的時(shí)間和放在一起寫,減少的層數(shù)使用淘寶源,顯著提高包下載的速度守護(hù)進(jìn)程通過運(yùn)行中的包,避免多帶帶全局安裝的占用時(shí)間到到這樣的順序可以充分使
少啰嗦,先看代碼 package.json
{ "name": "xxx", "version": "0.0.0", "private": true, "scripts": { "start": "node ./bin/www", "forever": "node_modules/forever/bin/forever bin/www" }, "dependencies": { "async": "0.9.0", "body-parser": "1.13.2", "compression": "1.6.2", "config": "1.12.0", "connect-multiparty": "2.0.0", "cookie-parser": "1.3.5", "debug": "2.2.0", "ejs": "2.3.3", "express": "4.13.1", "forever": "0.15.3", "http-proxy-middleware": "0.17.3", "log4js": "0.6.24", "serve-favicon": "2.3.0" } }dockerfile
FROM hub.c.163.com/lightingfire/nodejs:6.9.1-alpine WORKDIR /app COPY package.json /app RUN npm i --registry https://registry.npm.taobao.org && npm cache clean COPY . /app EXPOSE 8086 CMD npm run forever分析原理
使用alpine的nodejs鏡像,顯著縮小nodejs鏡像大小
使用npm cache clean命令,清空npm緩存,再次減少npm包占用的時(shí)間
npm i 和 npm chache clean放在一起寫,減少build的層數(shù)
使用淘寶npm源,顯著提高npm包下載的速度
守護(hù)進(jìn)程forever通過npm運(yùn)行node_module中的包,避免多帶帶全局安裝forever的占用時(shí)間
copy package到run npm i到copy . /app, 這樣的順序可以充分使用鏡像緩存
修改過后,對比之前通過jenkins打包時(shí)間從10分鐘縮短到7.4秒
參考資料How to write excellent Dockerfiles
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/26960.html
摘要:接下來我們將逐步的減少這個(gè)鏡像的體積。優(yōu)化生產(chǎn)環(huán)境鏡像使用鏡像大幅減小鏡像體積的最簡單和最快的方法是選擇一個(gè)小得多的基本鏡像。使用多階段構(gòu)建可以充分利用鏡像的緩存,大大減少最終部署到生產(chǎn)環(huán)境的時(shí)間。 關(guān)注作者github每日一道面試題詳解 你討厭部署你的應(yīng)用程序花費(fèi)很長時(shí)間嗎? 對于單個(gè)容器來說,超過gb并不是最佳實(shí)踐。每次部署新版本時(shí)都要處理數(shù)十億字節(jié),這對我們來說并不太合適。 本文...
摘要:構(gòu)建過程類似如下運(yùn)行容器鏡像構(gòu)建完成后,可以通過所構(gòu)建的鏡像創(chuàng)建運(yùn)行容器,從而實(shí)現(xiàn)應(yīng)用的化部暑。使用鏡像運(yùn)行一個(gè)容器在以上操作中,我們通過鏡像運(yùn)行了容器,并將容器命名為。此時(shí)可通過訪問服務(wù)。 初始化Dockerfile 假設(shè)我們的項(xiàng)目名為express,在express項(xiàng)目中創(chuàng)建編輯Dockerfile文件: $ vim Dockerfile FROM node:latest RU...
摘要:將安裝與模塊安裝放在一起的話,則每次修改源代碼,都需要重新安裝,這顯然不合適。使用設(shè)置鏡像元數(shù)據(jù)使用指令,可以為鏡像設(shè)置元數(shù)據(jù),例如鏡像創(chuàng)建者或者鏡像說明。自從年雙十一正式上線,累計(jì)處理了億錯(cuò)誤事件,付費(fèi)客戶有金山軟件百姓網(wǎng)等眾多品牌企業(yè)。 譯者按: Dockerfile 的語法非常簡單,然而如何加快鏡像構(gòu)建速度,如何減少 Docker 鏡像的大小卻不是那么直觀,需要積累實(shí)踐經(jīng)驗(yàn)。這篇...
摘要:創(chuàng)建文件夾創(chuàng)建創(chuàng)建創(chuàng)建配置文件設(shè)置基礎(chǔ)鏡像如果上個(gè)步驟已經(jīng)更新軟件源,這步可以忽略安裝和將目錄中的文件添加至鏡像的目錄中設(shè)置工作目錄安裝依賴庫暴露端口,便于訪問設(shè)置啟動(dòng)時(shí)默認(rèn)運(yùn)行命令構(gòu)建鏡像通過該命令,按照所配置的信息構(gòu)建出鏡 創(chuàng)建文件夾: mkdir ~/docker-node-hello && cd $_ 創(chuàng)建 index.js var express = require(expr...
摘要:創(chuàng)建文件夾創(chuàng)建創(chuàng)建創(chuàng)建配置文件設(shè)置基礎(chǔ)鏡像如果上個(gè)步驟已經(jīng)更新軟件源,這步可以忽略安裝和將目錄中的文件添加至鏡像的目錄中設(shè)置工作目錄安裝依賴庫暴露端口,便于訪問設(shè)置啟動(dòng)時(shí)默認(rèn)運(yùn)行命令構(gòu)建鏡像通過該命令,按照所配置的信息構(gòu)建出鏡 創(chuàng)建文件夾: mkdir ~/docker-node-hello && cd $_ 創(chuàng)建 index.js var express = require(expr...
閱讀 575·2023-04-25 16:00
閱讀 1617·2019-08-26 13:54
閱讀 2500·2019-08-26 13:47
閱讀 3427·2019-08-26 13:39
閱讀 1046·2019-08-26 13:37
閱讀 2742·2019-08-26 10:21
閱讀 3541·2019-08-23 18:19
閱讀 1607·2019-08-23 18:02