Azure DevOps搭建自動化部署CICD流水線

YangGod發表於2024-12-03

微軟的CICD
1.完成CICD的元件叫做 Azure Devops
官方的連結:https://dev.azure.com/
Azure Devops 我們用的是微軟的 - 雲平臺 不需要部署到本地部署到雲上就可以了
第二種方式CICD 大多數企業不是微軟系的 常用這個 Azure Devops jinkes

本期用的是第一種,微軟的
(1)第一步建立新的專案

(2) 新增資訊

(3)更改組織策略


我是勾選了這個兩個


然後點建立
(4)找到藍色小火箭 然後出現以下頁面


如果沒有othergit


關掉就出來了

這個地址裡需要用到dockerfile 所以給他新增docker容器支援生成dockerfile檔案




設定代理









下載完之後,到Xftp,把上面下載好的檔案,傳輸到你剛剛建立的資料夾裡









把你的路徑寫上










儲存好這個令牌 只能有一個

先敲回車,然後在輸入令牌



配置完代理



接下來配置devops代理 完成代理伺服器拉去gitee程式碼 將程式碼打包成docker映象














如果報錯,linux 重新執行一下


代表成功了

CD













透過ssh命令連線到阿里雲伺服器,在伺服器執行指令碼,主要工能:將你的docker映象從映象倉庫里拉去下來並且刪除舊映象執行新映象
思路:你修改完程式碼會傳到gitee上,然後你的dev.azure已經是監聽倉庫狀態,所以只要程式碼改變她就會自動拉去倉庫程式碼,打包成docker映象檔案,打包完之後就會歸到阿里雲的映象倉庫去,同時觸發CD,就是把阿里雲的映象拉倒伺服器刪除舊映象執行新映象


 #!/bin/bash
    name="webapp01"
    cid=`docker inspect --format '{{.Id}}' ${name} 2>/dev/null`
    if [[ ${#cid} -gt 0 ]]; then
       docker stop $name
       docker rm $name
       echo "successed deleted container ${name}"
    fi
  imageid=`docker images --format {{.ID}} $name`
  echo "準備刪除舊映象${imageid}"
  if [[ ${#imageid} -gt 0 ]]; then
     docker rmi -f $imageid
     echo "successed deleted old image ${name}"
  fi
  logfile="/var/log/servicelog/$name"
  if [[ ! -x "$logfile" ]]; then
   mkdir -p "$logfile" 
   echo "已成功建立日誌資料夾"
  else 
    echo "檔案存夾已存在"
  fi
  docker pull crpi-gs8s81u1efko9jig.cn-beijing.personal.cr.aliyuncs.com/yscicd/cicdtest:latest


  docker run -it -d -p 8089:80 --name webapp01 crpi-gs8s81u1efko9jig.cn-beijing.personal.cr.aliyuncs.com/yscicd/cicdtest --privileged=true			

  docker logs webapp01 




上邊是自動觸發,180秒輪詢一次
儲存並執行

run
如果步驟沒有問題

以後的每次啟動先

相關文章