【Azure + Core】实现CI/CD(一)构建镜像并推送仓库
(海上生明月,天涯共此時)
今天是農歷八月十六,大家中秋節快樂!
放了三天假,和家人整理下屋子,打掃下衛生,閑著無聊就研究點兒新東西。最近一直再看DevOps相關的內容,自從開始學習Docker以來,DevOps一直是比較感興趣的事情,今天就給大家簡單演示一下,如何使用Azure來實現CI操作——將Github上的代碼,自動的構建鏡像,并推送到DockerHub上(持續集成)。當然,私庫也是可以的。CD相關的內容,我還在看,下篇會講講,至于是部署到自己的服務器,還是部署到K8s里,看到時候的設備咯。
每個人應該都是可以的,注冊一個Azure賬號就可以了,我是國際版的,區別就是域名是https://dev.azure.com,只要有梯子科學上網就行,否則會很慢。
1$ 準備賬號
首先,Azure賬號就不說了,硬性標準。
其次,既然是要處理CI/CD,肯定需要源代碼管理了,想必每個人都有GitHub的賬號吧,用GitHub也是可以的,有時候我也會使用Azure上的代碼庫,畢竟是一體化的,整體操作起來比較順暢。
如果已經在GitHub上已經有項目了,又不想遷移到Azure上,那也可以的,直接建一個Pipeline就行了,我這里已經建了三個了:
我建Pipeline的目的主要有兩個:
1、保證代碼的準確性,比如有時候在地鐵上想修改一個代碼,又沒有編譯器,一般就直接在Github上修改,然后提交,讓CI來檢查;
2、可以構建鏡像并推送到倉庫,甚至還可以下一篇文章說到的直接部署。
真正意義上實現,修改代碼?== 預覽效果 的目的。
Github的Action也有這樣的功能,實現思路大致一樣,只不過在CD(持續部署上),不太好操作,具體可以參考我Blog.Core項目的代碼,這里不細說。
2$ 連接服務
新建一個Pipeline用來實現持續集成,需要一個DockerRegistry服務,要不然只能到Build這一步,也就只能來校驗代碼是否正常,不能推送鏡像,更別說后續的CD操作了。
一、項目設置
二、在Pipeline中,連接服務
點擊新建服務連接按鈕
選擇Docker Registry選項
選擇Registry類型,輸入DockerID和密碼,給這個連接取一個名字,點擊Save按鈕。
一個服務連接就創建完成了,在以后的CI操作中,會用到這個連接。
用戶名和密碼要正確,否則會提示錯誤,可以點擊Verify進行校驗
3$ 新建Pipeline
選擇新建Pipeline,勾選Github,如果你是在Azure中的,可以直接第一個,我這里勾選GitHub,基本都是采用YAML的方式
選擇一個自己的項目,這個時候可能需要Github二次密碼確認,輸入密碼即可
配置Pipeline,一般都是直接點擊Docker即可
配置YAML文件,默認會創建一個,只有build操作的,可以去掉那個task,在后側選擇一個docker的Assistant,這里都有模板
也可以直接點擊左側代碼里的那個settings,會自動喚起后側編輯窗口
其他都是默認,只需要勾選剛剛的服務連接就行,然后輸入自己的容器倉庫名,請注意,需要帶上鏡像前綴名稱,也就是DockerID,點擊Add按鈕,左側就同步變化了。
然后點擊右上角的Save and run按鈕,一個完成的CI操作就完成了,并且會把代碼給同步到GitHub上:
然后可以在GitHub上看到推送的鏡像
4$ 其他內容
新的每次Pipeline執行,都會有郵件的返回結果,如果是成功與否,這個還是很方便的
可以直接點擊地址,查看結果。
打完收工,下一篇,我們來看看如何做CD操作。
預告,在發稿時,CD已經研究七七八八了,總體感覺良好,且很有意思,值得研究下:
不僅有直觀的看板界面,更有詳細的日志和操作說明,方便定位任何問題,比如我隨便寫一個錯誤,就會看到錯誤日志(具體問題,下篇解析):
總結
以上是生活随笔為你收集整理的【Azure + Core】实现CI/CD(一)构建镜像并推送仓库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何在不安装 Microsoft Off
- 下一篇: Visual Studio的奇淫技巧,你