国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

重構:保持Dockerfile整潔的5個技巧

開發
今天給大家介紹保持Dockerfile整潔的5個技巧

 當Dockerfile超出合理范圍時,會出現以下問題:

很難理解和維護-我們需要閱讀數百行以了解所有依賴關系
在這么多行之間可能忽略一個明顯的安全問題
當每個人都在更改同一文件時,Git將引發更多沖突
如果我們不清理每個依賴項,可能會導致鏡像體積沉重
最好的解決方案是將Dockerfile拆分為多個Dockerfile,以使我們的Dockerfile更小,更易于理解和維護。

這里是一些減少Dockerfile大小的技巧。

重構1:從其官方鏡像中獲取依賴
避免創建從官方鏡像復制的工件。例如:我需要使用terraform沒必要再重新apt-get安裝了,可以直接使用帶有terraform的官方鏡像。

原始Dockerfile

  1. FROM golang:1.12 
  2. RUN apt-get update && \ 
  3.     apt-get upgrade -y && \ 
  4.     apt-get install -y git openssh-client zip 
  5. WORKDIR $GOPATH/src/github.com/hashicorp/terraformRUN git clone https://github.com/hashicorp/terraform.git ./ && \ 
  6.     git checkout v0.12.9 && \ 
  7.     ./scripts/build.shWORKDIR /my-configCOPY . /my-config/CMD ["terraform init"

重構后Dockerfile

  1. FROM hashicorp/terraform:0.12.9 AS terraform 
  2. FROM golang:1.12 
  3. COPY --from=terraform /go/bin/terraform /usr/bin/terraformWORKDIR /my-config 
  4. COPY . /my-config/ 
  5. CMD ["terraform init"

重構2:將依賴項提取到另一個Dockefile中
如果沒有正式鏡像,您可以從中提取工件,則應將其構建分離到另一個Dockefile中。然后將工件復制到原始Dockerfile中。

原始Dockerfile:

  1. FROM golang:1.12 
  2. RUN apt-get update && \ 
  3.     apt-get upgrade -y && \ 
  4.     apt-get install -y git openssh-client 
  5. WORKDIR /go/src/gitlab.com/sahilm/ 
  6. RUN git clone https://github.com/sahilm/yamldiff.git 
  7. RUN cd yamldiff && \    go get -u github.com/golang/dep/cmd/dep && \ 
  8.     dep ensure && \    GOOS=linux go build -o /usr/local/yamldiff 
  9. WORKDIR /my-appCOPY . /my-app/CMD ["./run.sh"

重構:用于yamldiff的Dockerfile。

  1. FROM golang:1.12 
  2. RUN apt-get update && \ 
  3.     apt-get upgrade -y && \ 
  4.     apt-get install -y git openssh-client 
  5. WORKDIR /go/src/gitlab.com/sahilm/ 
  6. RUN git clone https://github.com/sahilm/yamldiff.git 
  7. RUN cd yamldiff && \    go get -u github.com/golang/dep/cmd/dep && \ 
  8.     dep ensure && \    GOOS=linux go build -o /usr/local/yamldiff 
  9. CMD ["bash"

重構:應用程序的Dockerfile。

  1. FROM Marvalero/yamldiff:latest AS yamldiff 
  2. FROM golang:1.12 
  3. COPY --from=yamldiff /usr/bin/yamldiff /usr/bin/yamldiffWORKDIR /my-app 
  4. COPY . /my-app/ 
  5. CMD ["./run.sh"

重構3:將鏡像分成多個階段
Docker具有多階段功能,當您的Dockerfile具有不同的部分時,它會派上用場。最常見的用例是進行構建,然后在主鏡像中復制工件。具有不同的階段可以使您的Dockerfile更加清晰和安全。

  1. FROM golang:1.12 
  2. RUN apt-get update && \ 
  3.     apt-get upgrade -y && \ 
  4.     apt-get install -y git openssh-client 
  5. WORKDIR /go/src/gitlab.com/sahilm/ 
  6. RUN git clone https://github.com/sahilm/yamldiff.git 
  7. RUN cd yamldiff && \    go get -u github.com/golang/dep/cmd/dep && \ 
  8.     dep ensure && \    GOOS=linux go build -o /usr/local/yamldiff 
  9. CMD ["bash"

重構Dockerfile:

  1. FROM golang:1.12 as Builder 
  2. RUN apt-get update && \ 
  3.     apt-get upgrade -y && \ 
  4.     apt-get install -y git openssh-client 
  5. WORKDIR /go/src/gitlab.com/sahilm/ 
  6. RUN git clone https://github.com/sahilm/yamldiff.git 
  7. RUN cd yamldiff && \    go get -u github.com/golang/dep/cmd/dep && \ 
  8.     dep ensure && \    GOOS=linux go build -o /usr/local/yamldiff 
  9. FROM ubuntu:18.04 
  10. COPY --from=Builder /usr/local/yamldiff /usr/local/yamldiff 
  11. CMD ["bash"

重構4:對多行參數進行排序
盡可能對多行參數進行排序。這有助于仔細檢查沒有重復的程序包。

  1. FROM ubuntu:18.04 
  2. RUN apt-get -yqq install \ 
  3.     ca-certificates \    bash \    jq \    wget \    curl \    openssh-client \ 
  4.     build-essential \ 
  5.     libpng-dev \    python \    zipCDM ["bash"

重構Dockerfile:

  1. FROM ubuntu:18.04 
  2. RUN apt-get -yqq install \ 
  3.     bash \    build-essential \ 
  4.     ca-certificates \    curl \    jq \    libpng-dev \    openssh-client \ 
  5.     python \    wget \    zipCDM ["bash"

重構5:標簽

在使用Docker鏡像時,保持標簽整潔也至關重要。我總是覺得擁有三種類型的標簽非常有用:

分支名稱:標識特定分支的鏡像的最新版本
注意:為什么不使用latest?使用時latest,我永遠不知道它是表示整個存儲庫中的最新穩定版本還是最新版本。使用分支的名稱(如master,feature/new-class等)指向一個分支最新版本是方式更直觀。

版本:需要區分修補程序和重大更改。我建議使用語義版本控制(major.minor.patch)。
提交:我一直想知道標簽所指向的提交。現在,您可以通過在存儲庫中創建版本標記來執行此操作。但是,當這不可能時,只需使用其Commit SHA標記鏡像即可。
 

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2025-01-14 00:01:01

2020-07-15 10:46:22

物聯網安全物聯網IOT

2025-09-10 08:23:11

代碼重構技巧

2022-08-08 13:24:28

整潔架構架構前端

2011-07-27 10:30:21

活動目錄

2025-06-27 06:38:19

2024-07-30 10:55:25

2014-11-24 09:39:26

docker云計算

2023-07-19 15:16:33

遠程辦公技巧

2020-06-10 08:37:21

JavaScript重構技巧

2020-07-29 09:35:37

云存儲數據安全

2022-02-09 14:18:58

供應鏈分析數據分析大數據

2024-08-06 12:35:42

C#代碼重構

2020-12-09 10:49:33

代碼開發GitHub

2023-07-25 11:22:31

2025-04-23 08:02:44

2020-08-14 10:57:49

開發技能代碼

2009-05-04 09:11:28

GoogleChrome瀏覽器

2021-07-02 10:20:15

HTML前端技巧

2021-02-20 22:09:48

Web開發HTML
點贊
收藏

51CTO技術棧公眾號

黄色片网站在线观看| 在线观看av影片| 日韩在线影院| 欧美视频在线一区二区三区| 精品国产精品网麻豆系列| 亚洲综合精品一区二区| 男人天堂成人网| 视频一区在线观看| 国产亚洲人成a一在线v站| 蜜桃视频在线观看视频| 久久精品视频一区二区| 台湾成人av| 欧美高清一区| 91精品国产色综合久久不卡98口 | 欧美福利在线播放网址导航| 亚洲电影av在线| 中文字幕在线资源| 中文字幕第一区| 无码精品a∨在线观看中文| 免费av网站大全久久| 精品伦精品一区二区三区视频| 国产精品亚洲二区| 久久久久久久色| 欧美特黄色片| 亚洲天堂av综合网| 成人三级高清视频在线看| 欧美三级中文字幕在线观看| 久草在线新资源| 亚洲免费观看在线视频| 明星乱亚洲合成图.com| 国产精品美女久久久久aⅴ | 欧美主播一区二区三区美女| 导航艳情国产电影| 欧美国产欧美综合| 91av在线免费播放| 久久久久国产精品麻豆ai换脸| 国产精品一线二线三线| 国产在线精品一区二区不卡了| 日韩精品欧美专区| 久久国产欧美| 欧美日韩国产不卡在线看| 国产精品普通话对白| 九九99玖玖| 亚洲影院在线| 色之综合天天综合色天天棕色| 午夜亚洲影视| 日本一区二区久久精品| 日韩精品成人一区二区在线| 色综合影院在线观看| 精品在线播放午夜| 欧美视频在线第一页| www.亚洲精品| 日本xxxx黄色| 欧美日韩国产综合网| 丁香婷婷自拍| 在线视频一二三区| 久久久在线视频| 中文字幕亚洲区| 幼a在线观看| 色爱av美腿丝袜综合粉嫩av| 欧美久久亚洲| 亚洲一区二区精品在线| 超碰国产一区| 传媒视频在线| 熟妇人妻va精品中文字幕| 久久久精品999| 亚洲一区二区成人在线观看| 欧美日韩经典丝袜| 亚洲最新av在线| 韩国精品久久久| 性色av一区| 热re99久久精品国99热蜜月| 99精品欧美一区| 国产原创在线观看| 国产一区二区在线免费| 亚洲精品一区中文| 国产麻豆视频精品| 成人在线视频亚洲| 亚洲毛片一区二区| 久久国产精品色| 激情五月综合| 疯狂做受xxxⅹ高潮视频免费| 国产精品无码永久免费888| 伊人色**天天综合婷婷| caoporn97在线视频| 国产九色91| 精品毛片乱码1区2区3区 | 黄在线免费观看| 欧美一区二三区| 国产精品综合在线视频| 五月天国产在线| 日韩精品无码一区二区三区| 色国产精品一区在线观看| 美女尤物国产一区| 中文字幕日韩亚洲| 网友自拍亚洲| 成人午夜免费在线视频| 久久6免费高清热精品| caoporm超碰国产精品| 香蕉av一区二区| 中文字幕一区免费| 国产精品国语对白| 欧美理论片在线观看| 一区二区久久久久久| 国产一区二区美女| 成年人视频网站| 亚洲国产日韩欧美在线99| 亚洲午夜久久| 手机看片日韩国产| 色婷婷香蕉在线一区二区| 中文字幕日本一区| 老牛影视免费一区二区| 中文一区二区完整视频在线观看| 免费网站成人| 2019中文字幕免费视频| 久久精品免费看| 欧美男男同志| 久久久久久久久久久人体| 青青草国产精品97视觉盛宴| ga∨成人网| 久久精品99无色码中文字幕 | 欧美性少妇18aaaa视频| 精品国产亚洲一区二区三区大结局 | 欧美日产在线观看| 亚洲电影一级片| 欧美日韩在线一| 精品福利一区二区三区 | 国产xxxxx在线观看| 欧美成人精品二区三区99精品| jiujiure精品视频播放| 国产成人手机视频| 亚洲天堂精品在线| 三级亚洲高清视频| 日本美女在线中文版| 国产精品免费小视频| 国产精品日韩成人| 成人在线视频www| 男人天堂av片| 亚洲人成电影在线| 国内精品免费**视频| fc2ppv国产精品久久| 99久久精品久久久久久ai换脸| 亚洲手机成人高清视频| 日韩中文字幕无砖| 日本免费黄视频| 精品国偷自产在线| 国产91丝袜在线播放九色| 川上优av中文字幕一区二区| 丝袜足脚交91精品| 亚洲精品乱码久久久久久按摩观| 日本系列欧美系列| 2020av在线| 伊人再见免费在线观看高清版 | 欧美日韩精品一区二区三区| 99久久99热这里只有精品| 性欧美16一18| 国产精品一区二区久久精品| 一区二区三区欧美在线观看| 欧美理论电影在线精品| **孕交吃奶水一级毛片| 国产精品成人久久久久| 亚洲国产精品精华液网站| 日本不卡二三区| 精品乱码一区二区三四区视频 | 亚洲男人的天堂av| 国产一区二区在线| 亚洲男人天堂| 99在线国产| 日韩欧美在线影院| 卡一卡二国产精品| 国产黄色一区| 91小视频网站| 国产剧情日韩欧美| 欧美日韩一区二区三区视频| 日韩精品国产精品| 美女久久久久久| 先锋影音成人资源| 91精品综合久久| 精品国产成人系列| 99精品国产91久久久久久| 美国成人xxx| 亚洲52av| 欧美凹凸一区二区三区视频| 精品中文视频在线| 国产性做久久久久久| 波多野结衣在线播放一区| 国产高清视频在线观看| 亚洲精品在线视频观看| 久久久av网站| 亚洲va中文字幕| 日本不卡123| 精品国产亚洲一区二区三区| 日本免费专区| 日本在线免费观看一区| 久热在线中文字幕色999舞| 亚洲成人精品一区| 久久国产生活片100| 在线日韩网站| 久久青青色综合| 黄页在线免费看|