0


『DevOps最佳实践』使用Jenkins和Harbor进行持续集成和交付的解决方案

请添加图片描述

请添加图片描述
📣读完这篇文章里你能收获到

  • 全文采用图文形式讲解
  • 学会使用Harbor配置项目
  • 学会在Jenkins中配置Harbor推送权限
  • 使用Jenkins和Harbor进行持续集成的实践
  • 感谢点赞+收藏,避免下次找不到~

请添加图片描述

文章目录

请添加图片描述

在现代软件开发中,自动化部署是提高效率和可靠性的关键。本文将带你深入探索如何使用Jenkins和Harbor实现.NET Core项目的自动化部署。我们将一步步指导如何配置Jenkins、Harbor和Docker环境,以及使用最佳实践来简化部署流程。


一、准备工作

1. 环境准备

  • Docker环境
  • 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

image.png

#2. 把.docker复制到/var/lib/jenkins目录下cp -r /root/.docker/ /var/lib/jenkins/

#3. 修改文件夹权限cd /var/lib/jenkins/
chown -R jenkins.jenkins .docker

4. Harbor项目准备

  • 提前新建一个devops项目

image.png

请添加图片描述

二、配置 Jenkins 任务

1. 构建一个自由风格的软件项目

image.png

2. 选择 Git 并填写你的代码仓库 URL

  • 在 Jenkins 任务配置页面的 “源码管理” 中填写

image.png

3. 参数化构建过程

  1. 勾选参数化构建过程
  2. 添加文本参数

image.png

  1. 分别添加pName、pVersionPrefix、port、IMG

image.png

4. 构建触发器

  1. 在 “构建” 部分,点击 “增加构建步骤” 并选择 “执行Shell”
  2. 在命令框中输入以下命令:
exportpVersion=${pVersionPrefix}_${GIT_COMMIT:0:8}_`date +%Y%m%d%H%M`exportcontainer=${IMG}${pName}:${pVersion}# 到Dockerfile文件所在目录# cd src# 使用Docker构建镜像docker build -t ${container}.# 推送至Harbor仓库docker push ${container}# 检查容器是否存在ifdocker inspect --type=container ${pName}>/dev/null 2>&1;then# 停止容器docker stop ${pName}# 删除容器dockerrm${pName}fi# 运行新的容器docker run -d -p ${port}:80 --name ${pName}${container}

请添加图片描述

三、保存并启动 Jenkins 任务

1. 参数化构建任务

  1. 保存 Jenkins 任务配置并返回主页
  2. 点击任务名称进入任务详情页面
  3. 点击 “立即构建"或者"通过参数构建”

Jenkins 将开始监测代码仓库并自动构建和部署 .NET Core 项目

image.png

2. 查看Harbor项目

image.png

请添加图片描述

四、持续集成解决方案

1. 基于 Webhook 的方案

  • 在 Jenkins 项目中实现自动构建,持续集成,点击查看文章

请添加图片描述

五、异常处理

1. Jenkins中Docker Push时没权限

1.1 现象及原因

这是因为jenkins在推送镜像的时候使用的是jenkins的伪用户,那么既然要推送就要登录,那么首先在当前用户生成config.json

unauthorized: unauthorized to access repository: ocp/eureka-server, action: push: unauthorized to access repository: ocp/eureka-server, action: push

1.2 解决方式

#1. 当前用户使用docker login生成config.jsondocker login http://ip:port

image.png

#2. 把.docker复制到/var/lib/jenkins目录下cp -r /root/.docker/ /var/lib/jenkins/

#3. 修改文件夹权限cd /var/lib/jenkins/
chown -R jenkins.jenkins .docker

请添加图片描述

请添加图片描述

标签: jenkins ci/cd harbor

本文转载自: https://blog.csdn.net/qq_34202873/article/details/131144899
版权归原作者 老陈聊架构 所有, 如有侵权,请联系我们删除。

“『DevOps最佳实践』使用Jenkins和Harbor进行持续集成和交付的解决方案”的评论:

还没有评论