摘要:構建鏡像階段,我們這邊用搭建了自己的私有。在通知這塊,我沒有使用插件,恰好之前加入了的,所以自己建立了中的,然后在其中建立一個,命名。最后放一張整個的圖。
前言
在上一篇文章中,我們只是簡單介紹了一下drone的部署。接下來會逐步深入介紹,后期也會翻譯一些官方的文檔以及我在實際工作中用到的插件的介紹。這篇文章,主要是一個完整的drone demo。pipeline中,包括了git clone 拉取代碼,go build 構建,生成docker鏡像并推送到harbor,notify 通知。關于通知這塊,官方提供的插件都是一些西方喜歡用的即時通訊或是協作工具,比如telegram,slack,line等。所以在后期,我計劃寫一個微信或是釘釘的插件。
.drone.yml先上配置文件,有一個大概的認識,再逐一解讀。
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}}
工作空間,就是一個可以被pipeline各個階段共享volume和工作路徑的東東,好處就是避免了各種cd和拷貝。由于該demo項目使用golang。所以設置路徑是/go/src/gogs.xxx.com/baa-cicd。
clonegit plugin 是一個默認的插件,即使不配置,drone會自動配置,用來拉取代碼。
build由于是golang項目。一個命令go build即可。當然由于項目比較小,所以我提前用glide將依賴的包安裝到vendor目錄下了。否則應該定制自己安裝好glide的鏡像,或是在go build命令之前,執行 glide install 命令。當然此處也可以增加go test 對項目進行測試。
build: image: golang:latest commands: - glide install - go build -o baa-cicd - go test -vdocker build
構建docker鏡像階段,我們這邊用harbor搭建了自己的私有registry。此處需要注意的是secrets: [ docker_username, docker_password ]這里的設置。實際上有一些場景是,為了安全考慮,不想把用戶名和密碼暴露在配置文件中,drone提供了secret ref的用法。在drone ui界面配置secret,如下:
然后在.drone.yml 里通過secrets選項進行關聯即可。
當然這一步前提是要提供一個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,然后在其中建立一個channal,命名dev。
此處需要說明的是webhook的設置。具體可以查看slack官方文檔。設置成功以后,
然后拷貝 Webhookurl即可。當然可以定制自己的頭像以及app名。我這邊都是默認的。
最后實際收到通知效果:
demo 源碼具體代碼,我放到了github上。大家直接git clone 下來即可。
最后放一張整個build的圖。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27130.html
摘要:是的最佳實踐部署編寫文件的部署及其簡單,采用的方式,類似于。具體如下此處需要注意的是在處的。登錄配置項目此處輸入的用戶名和密碼是的。支持和兩個數據庫。新的配置文件如下仔細查看關于的文檔,需要我們手動創建數據庫。其中有和相關的。 前言 整個基于k8s的pass平臺,關鍵的一部分就是CICD。CICD又是devops的關鍵部分。之前主流的工具是Jenkins。今天主要介紹的是drone。...
摘要:是的最佳實踐部署編寫文件的部署及其簡單,采用的方式,類似于。具體如下此處需要注意的是在處的。登錄配置項目此處輸入的用戶名和密碼是的。支持和兩個數據庫。新的配置文件如下仔細查看關于的文檔,需要我們手動創建數據庫。其中有和相關的。 前言 整個基于k8s的pass平臺,關鍵的一部分就是CICD。CICD又是devops的關鍵部分。之前主流的工具是Jenkins。今天主要介紹的是drone。...
摘要:插件實現了一半,由于企業微信申請比較麻煩,所以也沒有進展。今天抽出時間,研究了一下插件,主要目的是實現非容器項目的部署。其實就是借助插件,將構建好的項目可執行文件和配置文件發布到指定主機上。直接上文件插件基于實現。完成新項目的部署。 前言 最近連續996加班,一直沒有時間完成drone系列文章。drone-wechat插件實現了一半,由于企業微信token申請比較麻煩,所以也沒有進展。...
摘要:插件實現了一半,由于企業微信申請比較麻煩,所以也沒有進展。今天抽出時間,研究了一下插件,主要目的是實現非容器項目的部署。其實就是借助插件,將構建好的項目可執行文件和配置文件發布到指定主機上。直接上文件插件基于實現。完成新項目的部署。 前言 最近連續996加班,一直沒有時間完成drone系列文章。drone-wechat插件實現了一半,由于企業微信token申請比較麻煩,所以也沒有進展。...
閱讀 2169·2023-04-25 15:00
閱讀 2343·2021-11-18 13:14
閱讀 1153·2021-11-15 11:37
閱讀 3083·2021-09-24 13:55
閱讀 1220·2019-08-30 15:52
閱讀 2644·2019-08-29 12:35
閱讀 3358·2019-08-29 11:04
閱讀 1209·2019-08-26 12:13