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

news/2024/11/17 6:53:42/

请添加图片描述

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

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

请添加图片描述

文章目录

  • 一、准备工作
    • 1. 环境准备
    • 2. 修改Docker配置文件
    • 3. Docker登陆Harbor
    • 4. Harbor项目准备
  • 二、配置 Jenkins 任务
    • 1. 构建一个自由风格的软件项目
    • 2. 选择 Git 并填写你的代码仓库 URL
    • 3. 参数化构建过程
    • 4. 构建触发器
  • 三、保存并启动 Jenkins 任务
    • 1. 参数化构建任务
    • 2. 查看Harbor项目
  • 四、持续集成解决方案
    • 1. 基于 Webhook 的方案
  • 五、异常处理
    • 1. Jenkins中Docker Push时没权限
      • 1.1 现象及原因
      • 1.2 解决方式

请添加图片描述

在现代软件开发中,自动化部署是提高效率和可靠性的关键。本文将带你深入探索如何使用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. 在命令框中输入以下命令:
export pVersion=${pVersionPrefix}_${GIT_COMMIT:0:8}_`date +%Y%m%d%H%M`
export container=${IMG}${pName}:${pVersion}# 到Dockerfile文件所在目录
# cd src# 使用Docker构建镜像
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# 运行新的容器
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.json
docker 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

请添加图片描述

请添加图片描述


http://www.ppmy.cn/news/438240.html

相关文章

宠物狗之家网站

开发工具(eclipse/idea/vscode等): 数据库(sqlite/mysql/sqlserver等): 功能模块(请用文字描述,至少200字):

勇敢的狗狗。

一只会飞的狗碰到了一个坏蛋,把坏蛋打败了。

中华田园犬发展史

中华田园犬是中国本土最古老的犬种之一,曾被尊称为“国犬”。 秦始皇一统中国时有个典故:秦朝丞相李斯临刑哀叹:“吾欲与若复牵黄犬俱出,上蔡,东门逐狡兔,岂可得乎” ;苏东坡词云“老夫聊发少年…

老友狗狗

【简介】电影讲述中村狮童饰演的广告人山田贤太郎,因为创作狗粮广告饱受客户挫折,失落时想起童年最好的“朋友”——波子(Pochi)……当年刚转校的山田,没有朋友,只好独自流连空地,因而偶然遇上忠…

狗狗被车压了腿如何急救处理?

一些调皮的狗狗一到外面就容易失控,外面的车又多,一不注意就容易发生车压到腿的情况,而主人在面对这些情况也比较容易惊慌失措。今天爪爪博士将会给大家分享一些关于狗狗被车压到腿的注意事项。 一、尽快带离危险环境 狗狗一旦被车压到腿部&a…

中国的名犬-

游遍中国,细数产自中国的名犬--总有你不知道的~苏联红犬 图片和介绍: http://www.kupet.cn/post.php?smid4&upid3&mbid48&mid4008 苏联红在国内的流行开始与80年代,该犬并非产自苏联,最早是从西安&#…

狗狗脑中有你的图像

最近科学家发现狗能靠脑中图像认人。这项研究显示犬科动物的大脑活动可能要比之前的推测複杂得多。 据《科学》网站报导,科学家近年发现多种动物具备出人意料的高级思维活动,如剑桥大学研究员尼科拉•克雷顿(Nicola Clayton)最…

狗狗评分分析

一、项目简介 (一)项目情况 推特用户 dog_rates 的档案也叫做 WeRateDogs。以诙谐幽默的方式对人们的宠物狗评级。这些评级通常以 10 作为分母。但是分子呢?分子一般大于 10。如11/10、12/10、13/10 等,WeRateDogs 拥有四百多万…