教你使用Jenkins集成Harbor自动发布镜像


Posted in Servers onApril 03, 2022

1、概述

在实际生产中,如果进行手动发布镜像到 Harbor,那么实在太 low 了。实际中,一般会结合 Jenkins 的流水线,进行自动构建和发布。

教你使用Jenkins集成Harbor自动发布镜像

大致流程说明:

  • 开发人员每天把代码提交到 Gitlab 代码仓库
  • Jenkins 从 Gitlab 代码仓库中拉取项目源码,进行编译并打成 jar 包;然后构建成 Docker 镜像,将镜像推送到
  • Harbor 私有镜像仓库
  • Jenkins 发送 SSH 远程命令,让生成部署服务器从 Harbor 私有镜像仓库中拉取镜像到本地;然后创建容器
  • 最后用户可以访问到容器

2、Jenkins 脚本式发布镜像

新建构建任务

教你使用Jenkins集成Harbor自动发布镜像

配置代码仓库

教你使用Jenkins集成Harbor自动发布镜像

上传成果物到服务器

教你使用Jenkins集成Harbor自动发布镜像

因 Jenkins 部署在 Windows 操作系统,所以采用批处理脚本。请根据 Jenkins 部署的操作系统的情况使用 batch command 或者 shell。

C:\jenkins\pscp.exe -r -l root -pw root %WORKSPACE%/zwt-pestilence/zwt-pestilence-web/target/zwt-pestilence-web-RELEASE.jar 
192.168.10.8:/home/huangjinjin/software/springdocker

发布镜像

教你使用Jenkins集成Harbor自动发布镜像

cd /home/huangjinjin/software/springdocker
docker build -t zwt:v1.0 .
docker login -u admin -p Harbor123 192.168.10.8
docker tag zwt:v1.0 192.168.10.8/omg/zwt:v1.0
docker push 192.168.10.8/omg/zwt:v1.0

创建 Dockerfile
构建后的 jar 上传到如下路径

/home/huangjinjin/software/springdocker

所以在该路径下创建 Dockerfile 文件,内容如下:

FROM openjdk:8-jre-slim                       //指定jdk
MAINTAINER huangjinjin "huangjinjin@qq.com"   //作者和邮箱描述
ENV PARAMS=""                                 //赋值
ENV TZ=PRC                                    //赋值
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
WORKDIR /servers                              //建立软连接 ,指定时区时间
ADD zwt-pestilence-web-RELEASE.jar app/zwt-pestilence-web-RELEASE.jar      //拷贝jar包
ENTRYPOINT ["sh","-c","java -jar $JAVA_OPTS /servers/app/zwt-pestilence-web-RELEASE.jar $PARAMS"]  //jar运行命令

Dockerfile 文件的内容根据实际项目情况进行修改。

构建并验证

教你使用Jenkins集成Harbor自动发布镜像

教你使用Jenkins集成Harbor自动发布镜像

登录 Harbor 查看是否推送镜像到 Harbor 镜像仓库成功

教你使用Jenkins集成Harbor自动发布镜像

3、Jenkins 插件式发布镜像

安装 CloudBees Docker Build and Publish 插件
Manage Jenkins -> Manage Plugins

教你使用Jenkins集成Harbor自动发布镜像

添加凭证

Manage Jenkins -> Manage Credentials

教你使用Jenkins集成Harbor自动发布镜像

创建一个 Harbor 的账密凭证

构建增加 Docker Build and Publish

教你使用Jenkins集成Harbor自动发布镜像

在点击高级选项中可以设置

  • Build Context:构建上下文路径
  • Dockerfile Path:Dockerfile 文件的路径

根据实际情况配置,配置如下:

教你使用Jenkins集成Harbor自动发布镜像

经过以上设置,即可进行 Jenkins 任务执行,构建镜像,执行dockerfile时其实就已经将镜像仓库的jar拷贝到了运行目录下,然后使用脚本在容器中启动了镜像jar,全自动,用户可以直接访问。

到此这篇关于Jenkins 集成 Harbor 自动发布镜像的文章就介绍到这了,更多相关Jenkins Harbor 镜像内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!


Tags in this post...

Servers 相关文章推荐
nginx对http请求处理的各个阶段详析
Mar 31 Servers
Nginx + consul + upsync 完成动态负载均衡的方法详解
Mar 31 Servers
小程序后台PHP版本部署运行 LNMP+WNMP
Apr 01 Servers
Nginx反向代理配置的全过程记录
Jun 22 Servers
阿里云日志过滤器配置日志服务
Apr 09 Servers
tomcat默认最大连接数及相关调整方法
May 06 Servers
zabbix配置nginx监控的实现
May 25 Servers
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
Jun 10 Servers
WinServer2012搭建DNS服务器的方法步骤
Jun 10 Servers
git stash(储藏)的用法总结
Jun 25 Servers
win10搭建配置ftp服务器的方法
Aug 05 Servers
CentOS7设置ssh服务以及端口修改方式
Dec 24 Servers
tomcat的catalina.out日志按自定义时间格式进行分割的操作方法
Apr 02 #Servers
为Centos安装指定版本的Docker
Apr 01 #Servers
Dashboard管理Kubernetes集群与API访问配置
Kubernetes中Deployment的升级与回滚
Apr 01 #Servers
了解Kubernetes中的Service和Endpoint
Kubernetes控制节点的部署
Apr 01 #Servers
Kubernetes部署实例并配置Deployment、网络映射、副本集
Apr 01 #Servers
You might like
微信公众号实现会员卡领取功能
2017/06/08 PHP
js url传值中文乱码之解决之道
2009/11/20 Javascript
jquery 实现表单验证功能代码(简洁)
2012/07/03 Javascript
一个基于jquery的文本框记数器
2012/09/19 Javascript
实现图片预加载的三大方法及优缺点分析
2014/11/19 Javascript
js实现浏览器窗口大小被改变时触发事件的方法
2015/02/02 Javascript
javascript实现起伏的水波背景效果
2016/05/16 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
由简入繁实现Jquery树状结构的方法(推荐)
2016/06/10 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
js实现截图保存图片功能的代码示例
2017/02/16 Javascript
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
详解Vue-cli中的静态资源管理(src/assets和static/的区别)
2018/06/19 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
解决vue.js 数据渲染成功仍报错的问题
2018/08/25 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
nuxt中使用路由守卫的方法步骤
2019/01/27 Javascript
layui表格 返回的数据状态异常的解决方法
2019/09/10 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
2020/06/01 Javascript
python time模块用法实例详解
2014/09/11 Python
python生成随机mac地址的方法
2015/03/16 Python
构建Python包的五个简单准则简介
2015/06/15 Python
python字符串对其居中显示的方法
2015/07/11 Python
Django Web开发中django-debug-toolbar的配置以及使用
2018/05/06 Python
英国第二大营养品供应商:Vitabiotics
2016/10/01 全球购物
Nordgreen英国官网:斯堪的纳维亚设计师手表
2018/10/24 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
党课学习思想汇报
2014/01/02 职场文书
县政府办公室领导班子对照检查材料思想汇报
2014/09/28 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2015年物业管理工作总结
2015/04/23 职场文书
2015中学政教处工作总结
2015/07/22 职场文书
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android
Windows server 2022创建创建林、域树、子域的步骤
2022/06/25 Servers
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS