主題: aspnetcorewebapi項(xiàng)目,提交到gitlab,通過jenkins(gitlab的ci/cd)編譯、發(fā)布、推送到k8s。 關(guān)于gitlab、jenkins、k8s安裝,都是使用docker啟動(dòng)服務(wù)。 首先新建一個(gè)項(xiàng)目,為了方便瀏覽就把swaggerr非開發(fā)環(huán)境不展示去掉 下面就是需
aspnetcorewebapi項(xiàng)目,提交到gitlab,通過jenkins(gitlab的ci/cd)編譯、發(fā)布、推送到k8s。
關(guān)于gitlab、jenkins、k8s安裝,都是使用docker啟動(dòng)服務(wù)。
首先新建一個(gè)項(xiàng)目,為了方便瀏覽就把swaggerr非開發(fā)環(huán)境不展示去掉
下面就是需要準(zhǔn)備Dockerfile和k8s.yaml文件,這里不應(yīng)該用net5,過時(shí)了。
這里需要注意的是configMap的name是我們需要再K8S里面建的appsettings.環(huán)境.json文件
一切準(zhǔn)備就緒,本地需要有docker環(huán)境,就能驗(yàn)證dockerfile是否有報(bào)錯(cuò),我本地是dockerdesktop。
下面就先把代碼提交到gitlab,我是用develop自建分支,而且我用的是http
這里gitlab
v17.1.1
有一個(gè)問題就是默認(rèn)會(huì)把容器的id當(dāng)成請(qǐng)求的ip地址,通過git 的git或者h(yuǎn)ttp拉取代碼這里都會(huì)有問題,進(jìn)入gitlab的容器內(nèi)部找到 /etc/gitlab/gitlab.rb找到external_url注釋掉的一行,改下你實(shí)際的地址和端口就行.
這里稍微提一下gitlab的ci/cd,本篇主要是jenkins。
gitlab安裝完默認(rèn)密碼存放在 /etc/gitlab/initial_root_password ,默認(rèn)用戶root
networks:指定唯一,在服務(wù)器中新建一個(gè)networks,方便一個(gè)網(wǎng)段通信,如果是分開的服務(wù)器就是用ip或者其他。
register runner的時(shí)候手敲,ip指定gitlab容器的內(nèi)網(wǎng)ip,查看命令 docker inspect docker容器id,類似這樣的,下面提示就是成功注冊(cè)一個(gè)runner
Registering runner... succeeded runner=
這里是安裝gitlab和gitlab-runner的docker-compose.yml
只要在項(xiàng)目中新增.gitlab-ci.yml,再把類似jenkins的shell操作放到文件中就可以了。這里有一個(gè)測試的文件,tags很重要,注冊(cè)runner的時(shí)候指定需要的,再在文件中配置了,就會(huì)按照流程.
上面僅僅只是一個(gè)測試完整流程文件,不涉及docker打包操作,需要docker打包的話runner就需要安裝,安裝模式有幾種,自行查資料.
下面介紹jenkins的操作
這里提一提,通過git拉取代碼,需要在jenkins的容器內(nèi)部生成.ssh的公鑰私鑰,公鑰添加到gitlab的ssh中,私鑰就放到j(luò)enkins的全局變量中,Credentials就可以選擇你的驗(yàn)證方式了.
下面的選擇會(huì)影響你拉取代碼,第一個(gè)設(shè)置你有可能需要在jenkins容器內(nèi)部拉取一次代碼,最后一個(gè)設(shè)置可以通過http拉。
下面繼續(xù):
這里我有三個(gè)步驟,編譯,發(fā)布,K8S拉取鏡像
構(gòu)建的日志就略過,這里使用的是harbor倉庫,注需要注意,docker login需要登陸harbor的倉庫,在harbor主機(jī)host通過ip地址映射一個(gè)隨意取名的域名,不要用ip,否則觸發(fā)https安全檢查.
jenkins的第三步,會(huì)觸發(fā)k8s去pull倉庫鏡像。關(guān)于jenkins和k8s的關(guān)聯(lián)就是把k8s主機(jī)的config文件拷貝到j(luò)enkins的 ./var/jenkins_home/root/.kube/config
當(dāng)K8S拉取鏡像后,服務(wù)正常啟動(dòng).
配置字典里新建autopubtest的appsettings.Production.json文件,該名稱需要與k8s。yaml的對(duì)應(yīng)起來autopubtest-config
新建下面的服務(wù)
下面就能正常使用接口了
小編推薦閱讀
機(jī)器學(xué)習(xí):神經(jīng)網(wǎng)絡(luò)構(gòu)建(下)
閱讀華為Mate品牌盛典:HarmonyOS NEXT加持下游戲性能得到充分釋放
閱讀實(shí)現(xiàn)對(duì)象集合與DataTable的相互轉(zhuǎn)換
閱讀鴻蒙NEXT元服務(wù):論如何免費(fèi)快速上架作品
閱讀算法與數(shù)據(jù)結(jié)構(gòu) 1 - 模擬
閱讀5. Spring Cloud OpenFeign 聲明式 WebService 客戶端的超詳細(xì)使用
閱讀Java代理模式:靜態(tài)代理和動(dòng)態(tài)代理的對(duì)比分析
閱讀Win11筆記本“自動(dòng)管理應(yīng)用的顏色”顯示規(guī)則
閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請(qǐng)發(fā)郵件[email protected]
湘ICP備2022002427號(hào)-10 湘公網(wǎng)安備:43070202000427號(hào)© 2013~2025 haote.com 好特網(wǎng)