微軟的CICD
1.完成CICD的元件叫做 Azure Devops
官方的連結:https://dev.azure.com/
Azure Devops 我們用的是微軟的 - 雲平臺 不需要部署到本地部署到雲上就可以了
第二種方式CICD 大多數企業不是微軟系的 常用這個 Azure Devops jinkes
本期用的是第一種,微軟的
(1)第一步建立新的專案
(2) 新增資訊
(3)更改組織策略
我是勾選了這個兩個
然後點建立
(4)找到藍色小火箭 然後出現以下頁面
如果沒有othergit
關掉就出來了
這個地址裡需要用到dockerfile 所以給他新增docker容器支援生成dockerfile檔案
設定代理
下載完之後,到Xftp,把上面下載好的檔案,傳輸到你剛剛建立的資料夾裡
把你的路徑寫上
儲存好這個令牌 只能有一個
先敲回車,然後在輸入令牌
配置完代理
接下來配置devops代理 完成代理伺服器拉去gitee程式碼 將程式碼打包成docker映象
如果報錯,linux 重新執行一下
代表成功了
CD
透過ssh命令連線到阿里雲伺服器,在伺服器執行指令碼,主要工能:將你的docker映象從映象倉庫里拉去下來並且刪除舊映象執行新映象
思路:你修改完程式碼會傳到gitee上,然後你的dev.azure已經是監聽倉庫狀態,所以只要程式碼改變她就會自動拉去倉庫程式碼,打包成docker映象檔案,打包完之後就會歸到阿里雲的映象倉庫去,同時觸發CD,就是把阿里雲的映象拉倒伺服器刪除舊映象執行新映象
#!/bin/bash
name="webapp01"
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
imageid=`docker images --format {{.ID}} $name`
echo "準備刪除舊映象${imageid}"
if [[ ${#imageid} -gt 0 ]]; then
docker rmi -f $imageid
echo "successed deleted old image ${name}"
fi
logfile="/var/log/servicelog/$name"
if [[ ! -x "$logfile" ]]; then
mkdir -p "$logfile"
echo "已成功建立日誌資料夾"
else
echo "檔案存夾已存在"
fi
docker pull crpi-gs8s81u1efko9jig.cn-beijing.personal.cr.aliyuncs.com/yscicd/cicdtest:latest
docker run -it -d -p 8089:80 --name webapp01 crpi-gs8s81u1efko9jig.cn-beijing.personal.cr.aliyuncs.com/yscicd/cicdtest --privileged=true
docker logs webapp01
上邊是自動觸發,180秒輪詢一次
儲存並執行
run
如果步驟沒有問題
以後的每次啟動先