??讀完這篇文章里你能收獲到
- 全文采用圖文形式講解
- 學(xué)會使用Harbor配置項目
- 學(xué)會在Jenkins中配置Harbor推送權(quán)限
- 使用Jenkins和Harbor進(jìn)行持續(xù)集成的實踐
- 感謝點(diǎn)贊+收藏,避免下次找不到~
在現(xiàn)代軟件開發(fā)中,自動化部署是提高效率和可靠性的關(guān)鍵。本文將帶你深入探索如何使用Jenkins和Harbor實現(xiàn).NET Core項目的自動化部署。我們將一步步指導(dǎo)如何配置Jenkins、Harbor和Docker環(huán)境,以及使用最佳實踐來簡化部署流程。
一、準(zhǔn)備工作
1. 環(huán)境準(zhǔn)備
- Docker環(huán)境
- DockerFile文件(需要提前寫好DockerFile文件)
2. 修改Docker配置文件
$ vi /etc/docker/daemon.json
{
"registry-mirrors": ["https://k728i8z5.mirror.aliyuncs.com"],
"insecure-registries":["harborip:port"]//添加harbor地址
}
- 重新啟動Docker
systemctl daemon-reload
systemctl restart docker
3. Docker登陸Harbor
docker login harborip:port
# 退出登陸則為:docker logout harborip:port
#2. 把.docker復(fù)制到/var/lib/jenkins目錄下
cp -r /root/.docker/ /var/lib/jenkins/
#3. 修改文件夾權(quán)限
cd /var/lib/jenkins/
chown -R jenkins.jenkins .docker
4. Harbor項目準(zhǔn)備
- 提前新建一個devops項目
二、配置 Jenkins 任務(wù)
1. 構(gòu)建一個自由風(fēng)格的軟件項目
2. 選擇 Git 并填寫你的代碼倉庫 URL
- 在 Jenkins 任務(wù)配置頁面的 “源碼管理” 中填寫
3. 參數(shù)化構(gòu)建過程
- 勾選參數(shù)化構(gòu)建過程
- 添加文本參數(shù)
- 分別添加pName、pVersionPrefix、port、IMG
4. 構(gòu)建觸發(fā)器
- 在 “構(gòu)建” 部分,點(diǎn)擊 “增加構(gòu)建步驟” 并選擇 “執(zhí)行Shell”
- 在命令框中輸入以下命令:
export pVersion=${pVersionPrefix}_${GIT_COMMIT:0:8}_`date +%Y%m%d%H%M`
export container=${IMG}${pName}:${pVersion}
# 到Dockerfile文件所在目錄
# cd src
# 使用Docker構(gòu)建鏡像
docker build -t ${container} .
# 推送至Harbor倉庫
docker push ${container}
# 檢查容器是否存在
if docker inspect --type=container ${pName} >/dev/null 2>&1; then
# 停止容器
docker stop ${pName}
# 刪除容器
docker rm ${pName}
fi
# 運(yùn)行新的容器
docker run -d -p ${port}:80 --name ${pName} ${container}
三、保存并啟動 Jenkins 任務(wù)
1. 參數(shù)化構(gòu)建任務(wù)
- 保存 Jenkins 任務(wù)配置并返回主頁
- 點(diǎn)擊任務(wù)名稱進(jìn)入任務(wù)詳情頁面
- 點(diǎn)擊 “立即構(gòu)建"或者"通過參數(shù)構(gòu)建”
Jenkins 將開始監(jiān)測代碼倉庫并自動構(gòu)建和部署 .NET Core 項目
2. 查看Harbor項目
四、持續(xù)集成解決方案
1. 基于 Webhook 的方案
- 在 Jenkins 項目中實現(xiàn)自動構(gòu)建,持續(xù)集成,點(diǎn)擊查看文章
五、異常處理
1. Jenkins中Docker Push時沒權(quán)限
1.1 現(xiàn)象及原因
這是因為jenkins在推送鏡像的時候使用的是jenkins的偽用戶,那么既然要推送就要登錄,那么首先在當(dāng)前用戶生成config.json
unauthorized: unauthorized to access repository: ocp/eureka-server, action: push: unauthorized to access repository: ocp/eureka-server, action: push
1.2 解決方式
#1. 當(dāng)前用戶使用docker login生成config.json
docker login http://ip:port
#2. 把.docker復(fù)制到/var/lib/jenkins目錄下
cp -r /root/.docker/ /var/lib/jenkins/
#3. 修改文件夾權(quán)限
cd /var/lib/jenkins/
chown -R jenkins.jenkins .docker
文章來源:http://www.zghlxwxcb.cn/news/detail-481386.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-481386.html
到了這里,關(guān)于『DevOps最佳實踐』使用Jenkins和Harbor進(jìn)行持續(xù)集成和交付的解決方案的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!