教你使用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实现发布静态资源的方法
Mar 31 Servers
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
May 26 Servers
解析在浏览器地址栏输入一个URL后发生了什么
Jun 21 Servers
总结高并发下Nginx性能如何优化
Nov 01 Servers
zabbix自定义监控nginx状态实现过程
Nov 01 Servers
Nginx的基本概念和原理
Mar 21 Servers
Docker官方工具docker-registry案例演示
Apr 13 Servers
Win10 Anaconda安装python-pcl
Apr 29 Servers
Nginx的gzip相关介绍
May 11 Servers
服务器间如何实现文件共享
May 20 Servers
详解apache编译安装httpd-2.4.54及三种风格的init程序特点和区别
Jul 15 Servers
Elasticsearch6.2服务器升配后的bug(避坑指南)
Sep 23 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
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php发送post请求的三种方法
2014/02/11 PHP
PHP日期函数date格式化UNIX时间的方法
2015/03/19 PHP
php进行ip地址掩码运算处理的方法
2016/07/11 PHP
PHP读取Excel类文件
2017/05/15 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
30个精美的jQuery幻灯片效果插件和教程
2011/08/23 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
jQuery中使用Ajax获取JSON格式数据示例代码
2013/11/26 Javascript
a标签click和href执行顺序探讨
2014/06/23 Javascript
Javascript中arguments用法实例分析
2015/06/13 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
Vuejs在v-for中,利用index来对第一项添加class的方法
2018/03/03 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
js回调函数原理与用法案例分析
2020/03/04 Javascript
vue 实现一个简单的全局调用弹窗案例
2020/09/10 Javascript
让Vue响应Map或Set的变化操作
2020/11/11 Javascript
Python实现读取json文件到excel表
2017/11/18 Python
python3实现字符串的全排列的方法(无重复字符)
2018/07/07 Python
详解Python爬取并下载《电影天堂》3千多部电影
2019/04/26 Python
基于python判断目录或者文件代码实例
2019/11/29 Python
解决Django提交表单报错:CSRF token missing or incorrect的问题
2020/03/13 Python
python列表删除和多重循环退出原理详解
2020/03/26 Python
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
加拿大大码女装购物网站:Penningtons
2020/12/26 全球购物
应届电子商务毕业自荐书范文
2014/02/11 职场文书
观看《周恩来的四个昼夜》思想汇报
2014/09/12 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
公司经营目标责任书
2015/01/29 职场文书
招商银行工作证明
2015/06/17 职场文书
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
2021/04/12 Python
go语言使用Casbin实现角色的权限控制
2021/06/26 Golang