成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

k8s與CICD--一個(gè)完整的drone demo

liukai90 / 996人閱讀

摘要:構(gòu)建鏡像階段,我們這邊用搭建了自己的私有。在通知這塊,我沒有使用插件,恰好之前加入了的,所以自己建立了中的,然后在其中建立一個(gè),命名。最后放一張整個(gè)的圖。

前言

在上一篇文章中,我們只是簡(jiǎn)單介紹了一下drone的部署。接下來(lái)會(huì)逐步深入介紹,后期也會(huì)翻譯一些官方的文檔以及我在實(shí)際工作中用到的插件的介紹。這篇文章,主要是一個(gè)完整的drone demo。pipeline中,包括了git clone 拉取代碼,go build 構(gòu)建,生成docker鏡像并推送到harbor,notify 通知。關(guān)于通知這塊,官方提供的插件都是一些西方喜歡用的即時(shí)通訊或是協(xié)作工具,比如telegram,slack,line等。所以在后期,我計(jì)劃寫一個(gè)微信或是釘釘?shù)牟寮?/p> .drone.yml

先上配置文件,有一個(gè)大概的認(rèn)識(shí),再逐一解讀。

workspace:
  base: /go
  path: src/gogs.xxx.com/baa-cicd
pipeline:
  build:
    image: golang:latest
    commands:
      - go build -o baa-cicd
  publish:
    image: plugins/docker
    registry: registry.xxx.com
    repo: registry.xxx.com/test/baa-cicd
    tags: latest
    secrets: [ docker_username, docker_password ]
    insecure: true
  notify:
    image: plugins/slack
    webhook: https://hooks.slack.com/services/xxx/xxx/xxx
    channel: dev
    template: >
      {{#success build.status}}
        build {{build.number}} succeeded. Good job.
      {{else}}
        build {{build.number}} failed. Fix me please.
      {{/success}}

workspace

工作空間,就是一個(gè)可以被pipeline各個(gè)階段共享volume和工作路徑的東東,好處就是避免了各種cd和拷貝。由于該demo項(xiàng)目使用golang。所以設(shè)置路徑是/go/src/gogs.xxx.com/baa-cicd。

clone

git plugin 是一個(gè)默認(rèn)的插件,即使不配置,drone會(huì)自動(dòng)配置,用來(lái)拉取代碼。

build

由于是golang項(xiàng)目。一個(gè)命令go build即可。當(dāng)然由于項(xiàng)目比較小,所以我提前用glide將依賴的包安裝到vendor目錄下了。否則應(yīng)該定制自己安裝好glide的鏡像,或是在go build命令之前,執(zhí)行 glide install 命令。當(dāng)然此處也可以增加go test 對(duì)項(xiàng)目進(jìn)行測(cè)試。

build:
    image: golang:latest
    commands:
      - glide install
      - go build -o baa-cicd
      - go test -v
docker build

構(gòu)建docker鏡像階段,我們這邊用harbor搭建了自己的私有registry。此處需要注意的是secrets: [ docker_username, docker_password ]這里的設(shè)置。實(shí)際上有一些場(chǎng)景是,為了安全考慮,不想把用戶名和密碼暴露在配置文件中,drone提供了secret ref的用法。在drone ui界面配置secret,如下:

然后在.drone.yml 里通過(guò)secrets選項(xiàng)進(jìn)行關(guān)聯(lián)即可。

當(dāng)然這一步前提是要提供一個(gè)Dockerfile文件。

FROM alpine
RUN apk add -U tzdata
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
COPY baa-cicd  /usr/local/bin/baa-cicd

EXPOSE 13123

ENTRYPOINT  ["baa-cicd","--port=13123"]
notify

在通知這塊,我沒有使用email插件,恰好之前加入了istio的slack,所以自己建立了slack中的workspace,然后在其中建立一個(gè)channal,命名dev。
此處需要說(shuō)明的是webhook的設(shè)置。具體可以查看slack官方文檔。設(shè)置成功以后,
然后拷貝 Webhookurl即可。當(dāng)然可以定制自己的頭像以及app名。我這邊都是默認(rèn)的。

最后實(shí)際收到通知效果:

demo 源碼

具體代碼,我放到了github上。大家直接git clone 下來(lái)即可。
最后放一張整個(gè)build的圖。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/27130.html

相關(guān)文章

  • k8sCICD--drone簡(jiǎn)介和部署

    摘要:是的最佳實(shí)踐部署編寫文件的部署及其簡(jiǎn)單,采用的方式,類似于。具體如下此處需要注意的是在處的。登錄配置項(xiàng)目此處輸入的用戶名和密碼是的。支持和兩個(gè)數(shù)據(jù)庫(kù)。新的配置文件如下仔細(xì)查看關(guān)于的文檔,需要我們手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)。其中有和相關(guān)的。 前言 整個(gè)基于k8s的pass平臺(tái),關(guān)鍵的一部分就是CICD。CICD又是devops的關(guān)鍵部分。之前主流的工具是Jenkins。今天主要介紹的是drone。...

    fxp 評(píng)論0 收藏0
  • k8sCICD--drone簡(jiǎn)介和部署

    摘要:是的最佳實(shí)踐部署編寫文件的部署及其簡(jiǎn)單,采用的方式,類似于。具體如下此處需要注意的是在處的。登錄配置項(xiàng)目此處輸入的用戶名和密碼是的。支持和兩個(gè)數(shù)據(jù)庫(kù)。新的配置文件如下仔細(xì)查看關(guān)于的文檔,需要我們手動(dòng)創(chuàng)建數(shù)據(jù)庫(kù)。其中有和相關(guān)的。 前言 整個(gè)基于k8s的pass平臺(tái),關(guān)鍵的一部分就是CICD。CICD又是devops的關(guān)鍵部分。之前主流的工具是Jenkins。今天主要介紹的是drone。...

    qujian 評(píng)論0 收藏0
  • k8sCICD--借助scp插件實(shí)現(xiàn)非容器項(xiàng)目部署

    摘要:插件實(shí)現(xiàn)了一半,由于企業(yè)微信申請(qǐng)比較麻煩,所以也沒有進(jìn)展。今天抽出時(shí)間,研究了一下插件,主要目的是實(shí)現(xiàn)非容器項(xiàng)目的部署。其實(shí)就是借助插件,將構(gòu)建好的項(xiàng)目可執(zhí)行文件和配置文件發(fā)布到指定主機(jī)上。直接上文件插件基于實(shí)現(xiàn)。完成新項(xiàng)目的部署。 前言 最近連續(xù)996加班,一直沒有時(shí)間完成drone系列文章。drone-wechat插件實(shí)現(xiàn)了一半,由于企業(yè)微信token申請(qǐng)比較麻煩,所以也沒有進(jìn)展。...

    Half 評(píng)論0 收藏0
  • k8sCICD--借助scp插件實(shí)現(xiàn)非容器項(xiàng)目部署

    摘要:插件實(shí)現(xiàn)了一半,由于企業(yè)微信申請(qǐng)比較麻煩,所以也沒有進(jìn)展。今天抽出時(shí)間,研究了一下插件,主要目的是實(shí)現(xiàn)非容器項(xiàng)目的部署。其實(shí)就是借助插件,將構(gòu)建好的項(xiàng)目可執(zhí)行文件和配置文件發(fā)布到指定主機(jī)上。直接上文件插件基于實(shí)現(xiàn)。完成新項(xiàng)目的部署。 前言 最近連續(xù)996加班,一直沒有時(shí)間完成drone系列文章。drone-wechat插件實(shí)現(xiàn)了一半,由于企業(yè)微信token申請(qǐng)比較麻煩,所以也沒有進(jìn)展。...

    pcChao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<