本文主要是講解如何使用Azure DevOps+Docker 來實現持續集成Asp.NET Core項目(當然 也可以是任意項目).
上一篇:
Azure DevOps+Docker+Asp.NET Core 實現CI/CD(一 .簡介與創建自己的代理池)
覺得有幫助的朋友~可以左上角點個關注,右下角點個推薦
今天我們廢話不多說 直接開始正文
昨天我們創建了自己的代理服務器(其實也可以用Azure提供的免費代理服務器,就是要排隊,而且比較慢,限制比較多..)
今天我們來講講如何創建自己的持續集成管道.
今天大致的流程圖如下:

1. 創建私有Docker Registry
首先我們需要到自己需要持續集成的服務器上 安裝Docker Registry來獲取我們的docker image
安裝Docker..我這就不說了.主要講講如何安裝Docker Registry
直接拉取registry鏡像:
docker pull registry
查看是否存在鏡像:

拉取到鏡像后,我們直接Run 命令:
docker run -itd -v /data/registry:/var/lib/registry -p 8082:5000 --restart=always --name registry registry:latest
這里的8082是你映射外網的端口.
運行命令查看是否運行成功:
curl http://127.0.0.1:8082/v2/_catalog

這里顯示{}就表示運行成功了,我這個是因為有項目了...所以打碼了..
(注意:正式環境的Docker Registry部署請設置用戶密碼,畢竟是對外的端口)
2. 創建Service connections(服務連接)
點擊項目下的配置按鈕:

找到Service connections
創建一個新的連接, 這里我們選擇上一步創建的Docker Registry

填寫剛剛創建好的Docker Registry地址與密碼.

這一步就算完成了,下一步我們將來使用它.
3. 創建持續集成管道
我們找到Pipelines菜單

點擊創建新的管道

選擇自己的項目代碼托管的地方,這里我們選擇上篇文章代碼提交的地方Azure Repos Git

選中自己需要集成的項目:

配置管道,我們選擇Docker

選擇項目中的dockerFile文件位置:

我測試項目的DockerFile文件如下,大家可自行參考(純空項目啥也沒有):
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base WORKDIR /app EXPOSE 80 EXPOSE 443 FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build RUN mkdir -p /app WORKDIR /src COPY . . RUN dotnet restore "WebApplication1.csproj" RUN dotnet build "WebApplication1.csproj" -c Release -o /app FROM build AS publish RUN dotnet publish "WebApplication1.csproj" -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "WebApplication1.dll"]
編輯配置我們的Pipeline YAML(這里開始,很重要):
將默認的Pool名改為我們昨天自行創建配置的Pool

修改為
創建持續集成的步驟Steps,點擊右邊的按鈕可以打開圖形化配置界面

我們下一篇來講如何CD 持續部署與持續交付.






