Azure App Service(一)利用Azure DevOps Pipeline 構建鏡像,部署應用程序

一,引言

  起因是前兩天項目上做測試,需要我把寫好的基於.NET 5 的 Web 測試程序作成 Docker 鏡像。當我在本地驗證完功能後,準備利用 Docker 構建應用程序鏡像的時候,發現系統不支持安裝 Docker Desktop。這下看來只能利用Azure DevOps 自動創建 Docker 鏡像了,學以致用嘛!

二,正文

1,創建 Azure Container Registry 服務

前置條件,我們得先手動創建 鏡像存儲庫。我們登錄到 Azure Portal 上,點擊 “Create a resource”,搜索 “Container Registry”

輸入相關參數

Registry name:“appconfig”

Location:‘Asia“

SKU:”Basic“

再次檢查一下輸入或者選擇的參數,並且點擊 ”Review + create“

創建前的預校驗完成後,點擊 ”Create“ 創建 Azure Container Registry

等待創建完成後,我們就可以轉到資源查看當前 Container Registry 的相關信息了 

2,Azure DevOps 設置Pipeline

首先得先創建一個新的項目 ”CnBateBlogWeb“

Project name:”CnBateBlogWeb“

 

創建完項目後,選擇 Pipeline ,點擊 ”Create Pipeline“

選擇 ”GitHub YAML“(根據自己實際的項目存儲的代碼庫選擇

連接到自己的測試代碼所在的 github 賬號,作爲演示,選擇 "CnBateBlogWeb" 的代碼庫

接下啦,我們需要配置當前pipeline,目前我們需要選擇先構建項目,然將 images 推動到 Azure Container Registry,

如果找到相似的模板,需要點擊箭頭所指的地方 ”Show more“ 展示更多

選擇 Docker (Build and push an images to Azure Container Registry)

選擇 Azure 訂閱

填寫相關參數

Container registry 選擇:”appconfig“

Image Name :”cnbateblogweb.net.demo“

點擊 ”Validate and configure“ 驗證和配置 pipeline.yaml 

Azure DevOps 爲我們生成好了 pipeline 的配置項(配置內容不是今天文章講解的重點),點擊 ”Save and run“

點擊 ”Run“

等下構建中,我們可以通過日誌查看當前構建信息

等構建完成後,我們回到Azure Portal 中查看當前存儲庫中的鏡像信息,選擇 "Services =》Repositories"

當前鏡像的詳細信息(Tags 等於3,是因爲我在運行Azure DevOps 的Pipeline 的時候,取消了兩次構建,並且Tag 爲當前Pipeline 的Build.BuildId

最後,我們需要配置開啓使用 ”username“ & ”password“ 作爲docker 的登錄信息登錄到 Azure Container Registry 上

選擇 ”Setting =》Access keys“,開啓 ”Admin user“

3,部署 Images 到 Azure Web App

Azure Portal 選擇 "Web App",並輸入相關參數

Name:”cnbateblogweb“

Publish 選擇:”Docker Container“

Operation System:”Linux“

Region:”East Asia“

Sku and size :如果是測試、學習,儘量免費的

配置完相關參數後,點擊 ”Next:Docker“

Image Source 選擇 :”Azure Container Registry“

Registry 選擇:”appconfig“

Image 選擇:”cnbateblogwebnetdemo“

Tag 選擇:”3“

輸入完相關參數後,點擊 ”Review + create“

點擊 ”Create“ 進行創建

等待創建完成後,點擊 ”Go to resource“ 轉到該資源

接下來,我們需要配置環境變量參數 "Location",“ASPNETCORE_ENVIRONMENT”,“WEBSITES_PORT”

注意:"Location",“ASPNETCORE_ENVIRONMENT” 是我們應用程序中需要使用到的,而 "WEBSITES_PORT" 是需要自定義鏡像映射使用的端口 “9021”

配置完 Azure App Service 的環境變量後,我們複製 URL 在瀏覽器中嘗試訪問

OK,成功!!!!*★,°*:.☆( ̄▽ ̄)/$:*.°★* 。🐱‍🏍🐱‍🏍🐱‍🏍🐱‍🏍🐱‍🏍

三,結尾

  Azure App Service 支持代碼和Docker 兩種部署模式,結合目前日益火熱的 容器化技術,我們不能落後,今天就利用Azure DevOps 持續構建應用程序的Docker Images,並且將鏡像推送到Azure Container Registry 中,最後利用 Azure App Sevice 的Docker 部署模式部署示例程序。整個過程還是很有學習價值的,大家也要多多練習。本文所分享的內容也存在着很多我自己的一些理解,有理解不到位的,還希望多多包涵,並且指出不足之處。

參考資料:Azure Pipeline自定義容器部署

作者:Allen 

版權:轉載請在文章明顯位置註明作者及出處。如發現錯誤,歡迎批評指正。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章