Azure 實踐(4)- CI/CD .netcore項目Docker構建及部署


上篇已介紹了.netcore項目構建的相關步驟,本篇繼續完善

1、什么是CI/CD

CI/CD 中的“CI”始終指持續集成,它屬於開發人員的自動化流程。成功的 CI 意味着應用代碼的新更改會定期構建、測試並合並到共享存儲庫中。該解決方案可以解決在一次開發中有太多應用分支,從而導致相互沖突的問題。
CI/CD 中的“CD”指的是持續交付和/或持續部署,這些相關概念有時會交叉使用。兩者都事關管道后續階段的自動化,但它們有時也會單獨使用,用於說明自動化程度。

2、Azure Devops創建鏡像注冊連接

  • 通過項目設置,創建新的服務連接
    image
  • 選擇Docker Registry,點下一步
    image
  • 填寫docker hub用戶驗證信息及服務器連接名稱,點驗證,看到成功
    image

3、編輯Azure Devops管道信息,添加推送鏡像操作

  • 添加設置對應的鏡像倉庫信息
    image
    image

4、保存管道信息,退出編輯,重新運行管道

  • 運行管道,報錯信息如下,denied: requested access to the resource is denied
    image
    解決方法:參考https://sample.blog.csdn.net/article/details/70156144
    添加鏡像前綴tag
    image
  • 再次運行管道,管道執行成功,備注:docker hub國內訪問較慢
    image
  • 登入docker hub,發現多了一個鏡像,說明構建推送鏡像成功
    image

5、新建發布管道,部署應用

  • 創建發布管道
    image
  • 新建一個空作業
    image
  • 添加項目信息
    image
  • 添加階段,命名部署應用,隨意
    image
    image
  • 想代理作業中添加任務,選擇ssh連接應用主機,執行命令
    image
    image
    image
  • 參考腳本:
      #!/bin/bash
        name="netcoreapp01"
        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 hub.docker.com/repository/docker/xjk27400861/coreapp3:$(Build.BuildId)
      docker tag hub.docker.com/repository/docker/xjk27400861/coreapp3:$(Build.BuildId) coreapp3:$(Build.BuildId)
      docker run -it -d -p 8002:80 --name netcoreapp01 --privileged=true 			coreapp3:$(Build.BuildId)
      docker logs netcoreapp01
    
  • 創建發布,部署應用
    image
  • 部署應用
    image
    image
  • 發現部署成功
    image
  • 訪問應用,部署成功
    image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM