Azure DevOps (十) 通過流水線完成Docker鏡像的部署


上一篇文章中,我們通過azure的流水線完成了鏡像推送到鏡像倉庫中去,本篇文章我們繼續開始完成下一步,通過流水線把鏡像從倉庫拉取到任意一台公網的服務器上去,

完成鏡像部署的閉環。

文章配套視頻專欄:

https://space.bilibili.com/38649342/channel/seriesdetail?sid=2267536

首先我們需要先准備一下部署的環境,我們先找一台服務器在上面安裝一下docker的容器引擎,我的用系統版本是centos的,這里貼一下安裝命令。

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

sudo yum install -y yum-utils

sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

sudo yum install docker-ce docker-ce-cli containerd.io

執行完命令之后,執行一下systemctl start docker ,然后通過systemctl status docker 查看一下守護進程的狀態,正常的話如下圖所示:

 

環境准備好之后,我們接下來去改造我們之前創建好的流水線,我們在我們已經完成了鏡像推送到倉庫的流水線上添加第三個任務,這個任務的目的是通過SSH登錄到

我們的公網服務器上去,然后在我們的服務器上登錄到我們的鏡像倉庫,從倉庫中獲取到我們想要的鏡像,最后進行鏡像的部署。

首先,添加ssh任務

 

 選擇我們裝好了docker環境的服務器,選擇編輯在線腳本,腳本的主要內容是:登錄我們之前做好的鏡像倉庫,從倉庫中獲取我們的鏡像,執行docker run部署

 

 腳本內容如下:

docker login ccr.ccs.tencentyun.com --username=100008582177 --password=******
//這里我們使用$(Build.BuildId)環境變量,讓流水線自動拉取上一個任務編譯好的鏡像TAG
docker pull docker pull ccr.ccs.tencentyun.com/my-registry/my-image-repository:test-$(Build.BuildId) 
docker run
-d --name test -p 8080:8081 ccr.ccs.tencentyun.com/my-registry/my-image-repository:test-$(Build.BuildId)

編寫好之后,我們運行一下流水線看看效果

 

 

 這里有個小插曲,就是我第一次運行的時候所有的命令都執行成功了,但是到最后流水線依然會報出異常,結果查證之后發現原來是最后docker向控制台輸出了stderr,我去搜索了一番

stackoverfolw上是這么答復的:

 

 所以我們需要按照提示去關閉ssh這個任務中的Fail on stderr選項。

被這個玩意坑了我20分鍾,太慘了。

到這里,我們就完成了通過azure實現從鏡像編譯到部署的全套流程,接下來我們將會開始研究azure的更多功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM