教你使用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中break与last的区别详析
Mar 31 Servers
nginx配置文件使用环境变量的操作方法
Jun 02 Servers
Nginx防盗链与服务优化配置的全过程
Jan 18 Servers
Kubernetes控制节点的部署
Apr 01 Servers
CentOS下安装Jenkins的完整步骤
Apr 07 Servers
阿里云 Windows server 2019 配置FTP
Apr 28 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
nginx配置限速限流基于内置模块
May 02 Servers
Nginx的gzip相关介绍
May 11 Servers
WinServer2012搭建DNS服务器的方法步骤
Jun 10 Servers
win sever 2022如何占用操作主机角色
Jun 25 Servers
Centos7 Shell编程之正则表达式、文本处理工具详解
Aug 05 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
phpMyAdmin 安装配置方法和问题解决
2009/06/08 PHP
Admin generator, filters and I18n
2011/10/06 PHP
php合并js请求的例子
2013/11/01 PHP
PHP命名空间(namespace)原理与用法详解
2019/12/11 PHP
利用NodeJS和PhantomJS抓取网站页面信息以及网站截图
2013/11/18 NodeJs
购物车选中得到价格实现示例
2014/01/26 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
JavaScript组件焦点与页内锚点间传值的方法
2015/02/02 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
js点击按钮实现带遮罩层的弹出视频效果
2015/12/19 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
浅谈javascript中关于日期和时间的基础知识
2016/07/13 Javascript
JS判断指定dom元素是否在屏幕内的方法实例
2017/01/23 Javascript
深入理解JavaScript中的for循环
2017/02/07 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
JavaScript Canvas绘制圆形时钟效果
2020/08/20 Javascript
JS实现匀速与减速缓慢运动的动画效果封装示例
2018/08/27 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
JS中作用域以及变量范围分析
2020/07/18 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
python处理文本文件并生成指定格式的文件
2014/07/31 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
详解python 模拟豆瓣登录(豆瓣6.0)
2019/04/18 Python
python代码实现逻辑回归logistic原理
2019/08/07 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
在pycharm中关掉ipython console/PyDev操作
2020/06/09 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
2020/12/15 Python
Redbubble法国:由独立艺术家设计的独特产品
2019/01/08 全球购物
建筑实习自我鉴定
2013/10/18 职场文书
日语专业推荐信
2013/11/12 职场文书
刑事法律意见书
2015/06/04 职场文书
学雷锋活动简报
2015/07/20 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
Python基础之数据类型知识汇总
2021/05/18 Python
Python中异常处理用法
2021/11/27 Python