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

xjk27400861 2021-09-18 09:29:48 阅读数:355

azure 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
版权声明:本文为[xjk27400861]所创,转载请带上原文链接,感谢。 https://gsmany.com/2021/09/20210918092948318k.html