前提:上篇文章中,已建立項目TestXujk,本篇詳細講述devops操作
1、在項目設定中,建立源代碼git服務連接配接

- 點選“建立服務連接配接”,建立源代碼git托管倉庫連接配接,我這裡使用的是gitee,是以這裡選“其他Git”
Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 - 點選儲存,即可建立連接配接
Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署
2、點選管道,建立管道
- 第一步,選擇你的代碼倉庫
Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 - 選擇管道模闆,我們打算用docker部署應用,這裡我們選:Docker容器,點:應用
Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 - 設定dockerfile的檔案路徑,容器系統資料庫類型,随便選一個即可
Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 - 後面推送鏡像(Push an image)操作,先不操作(沒有鏡像倉庫可推),執行一下管道,看能否生成鏡像檔案
3、執行一下管道,看能否生成鏡像檔案
發生錯誤1:發現代理機上,源代碼路徑沒有Dockerfile檔案,繼續送出源代碼
發生錯誤2:
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock:
原因:Ubuntu系統中,執行docker指令,需要添加sudo
通過将使用者添加到docker使用者組可以将sudo去掉,指令如下
sudo groupadd docker #添加docker使用者組
sudo gpasswd -a $USER docker #将登陸使用者加入到docker使用者組中
newgrp docker #更新使用者組
備注:一定要重新啟動ubuntu虛拟機才管用
還有一種方法:在安裝代理服務的時候,啟用如下指令安裝,不推薦
sudo ./svc.sh install root
再次運作管道,建構鏡像成功
備注:Push指令不用管,因為沒有配置鏡像伺服器資訊
4、建構前,添加:指令行 操作,删除已存在鏡像
運作管道,發現以前存在的鏡像被删除,建立了一個新版本的鏡像
參考指令行
currimages=$(docker images -a | grep "coreapp3" | awk '{print $3}')
if [ "${currimages}" != "" ]; then
docker rmi -f $(docker images -a | grep "coreapp3" | awk '{print $3}')
fi
5、運作指令行,部署運作容器
說明:我們這裡隻示範下部署步驟,也在代理池的虛拟機中,實際上,一般代理池虛拟機建構完程式,建構鏡像後,先推送到鏡像伺服器,然後在釋出的環節中,通過SSH方式連接配接應用伺服器主機,拉取鏡像,然後進行運作部署
- 修改管道配置,添加任務-指令行任務
Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 - 然後我們編寫腳本,建立應用,腳本參考如下:
腳本說明:查找容器名為netcoreapp01的應用,如果存在,則停止應用,删除應用;然後通過docker run指令重新建立應用容器#!/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 docker run -it -d -p 8002:80 --name netcoreapp01 --privileged=true coreapp3:$(Build.BuildId) docker logs netcoreapp01
- 運作管道,發現部署可以成功
Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 - 進入虛拟機,檢視程式運作狀态:
Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署 - 通過http://ip:8002 位址進行通路
Azure 實踐(3)- Azure Devops建構.netcore項目,打包Docker鏡像+運作容器部署