<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          如何向K8s,Docker-Compose注入鏡像Tag

          共 1594字,需瀏覽 4分鐘

           ·

          2021-01-24 13:59

          最近在做基于容器的CI/CD, 一個樸素的自動部署的思路是:

          • 從Git Repo打出git tag,作為鏡像Tag
          • ssh遠程登錄到部署機器
          • 向部署環(huán)境注入鏡像Tag,拉取鏡像,重新部署

          下面分享我是如何在K8s、docker-compose中注入鏡像Tag

          k8s

          熟悉k8s的同學知道, K8s有一個強大的原生配置管理工具:Kustomize。

          Kustomize 以一種無模板的方式來定制應(yīng)用程序配置,從而簡化了現(xiàn)有應(yīng)用程序的使用?,F(xiàn)在kustomize已經(jīng)以apply -k的方式內(nèi)置進kubectl。

          這里利用Kustomize的edit命令修改定義在Kustomization.yaml中的鏡像Tag:

          下面是一個簡單的Kustomization.yaml文件:

          kind:?Kustomization
          namespace:?wd
          resources:
          -?../base
          images:
          -?name:?hub.docker.com/eap/website??//原鏡像名
          ??newName:?hub.docker.com/eap/website
          ??newTag:?v1.0.7-hotfix5?????//?持續(xù)被修改的Tag

          做自動部署時,一般由CI給部署腳本導入此次git tag(鏡像Tag)。

          #!/bin/sh
          cd?/home/wd-deploy/localdeploy/wd/overlays/??
          kustomize?edit?set?image??hub.docker.com/eap/website=hub.docker.com/eap/website:${TAG}
          kustomize?build?.?|?kubectl?apply?-f?-

          以上部署腳本: 進入Kustomization.yaml目錄,向Kustomization.yaml文件注入新的鏡像Tag,構(gòu)建并應(yīng)用新的配置

          docker-compose

          Docker平臺就沒有那么好的工具,明文讓你修改鏡像配置。

          我們采用shell腳本來曲線修改鏡像配置:

          假如你有一個簡單的docker-compose.yml文件:

          version:?'3'

          services:
          ????app:
          ????????image:?username/app:d7s8f12
          ????????ports:
          ????????????-?80:80

          通過shell腳本修改`app:` 字符串后面的鏡像Tag,達到注入Tag的目的。

          sed -E -i'' "s/(.*app:).*/\1$COMMIT/" 'docker-compose.yml'

          同樣,自動部署時由CI給部署腳本導入此次Git Tag (鏡像Tag)。

          #!/bin/sh

          cd??/home/wd-deploy/app/
          sed?-E?-i''?"s/(.*app:).*/\1$COMMIT/"?'docker-compose.yml'
          docker-compose?pull?app ?&&?docker-compose??up?-d

          以上部署腳本: 進入docker-compose.yml目錄,向Compose文件注入新的鏡像Tag,拉取鏡像并應(yīng)用新的配置。

          結(jié)束語

          本文分享了向K8s, Docker-Compose平臺注入鏡像Tag的姿勢。

          ?為啥要專題講這個呢?因為注入Tag是自動部署的必經(jīng)過程。

          本文只是一個粗淺的、樸素的注入思路(Devops生態(tài)有許多組件可以完成該項動作), 歡迎大家多多留言,帶我上路。





          更多干貨及最佳實踐分享
          關(guān)注并星標我們
          ~。。~

          瀏覽 37
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人黄网站 免费视频 | 五月天综合激情 | 日韩中文字幕区 | 20岁天然美乳白虎女大生 | 黑人与少妇一级A片 |