教你使用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
Nginx stream 配置代理(Nginx TCP/UDP 负载均衡)
Nov 17 Servers
Apache Pulsar集群搭建部署详细过程
Feb 12 Servers
基于Apache Hudi在Google云构建数据湖平台的思路详解
Apr 07 Servers
忘记Grafana不要紧2种Grafana重置admin密码方法详细步骤
Apr 07 Servers
Nginx的gzip相关介绍
May 11 Servers
nginx设置资源请求目录的方式详解
May 30 Servers
winserver2019安装软件一直卡在应用程序正在为首次使用做准备
Jun 10 Servers
教你如何用cmd快速登录服务器
Jun 10 Servers
windows server 2016 域环境搭建的方法步骤(图文)
Jun 25 Servers
搭建zabbix监控以及邮件报警的超级详细教学
Jul 15 Servers
django项目、vue项目部署云服务器的详细过程
Jul 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
比特率,大家看看这个就不用收音机音质去比MP3音质了
2021/03/01 无线电
php 静态化实现代码
2009/03/20 PHP
PHP中限制IP段访问、禁止IP提交表单的代码
2011/04/23 PHP
PHP 文本文章分页代码 按标记或长度(不涉及数据库)
2012/06/07 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
浅谈PHP中其他类型转化为Bool类型
2016/03/28 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
重载toString实现JS HashMap分析
2011/03/13 Javascript
javascript解析json数据的3种方式
2014/05/08 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
JS+CSS实现仿支付宝菜单选中效果代码
2015/09/25 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
[01:13:01]2018DOTA2亚洲邀请赛 4.4 淘汰赛 TNC vs VG 第三场
2018/04/05 DOTA
python多线程编程中的join函数使用心得
2014/09/02 Python
Python中为feedparser设置超时时间避免堵塞
2014/09/28 Python
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
Python基于gevent实现高并发代码实例
2020/05/15 Python
HTML5 Canvas实现文本对齐的方法总结
2016/03/24 HTML / CSS
canvas学习笔记之2d画布基础的实现
2019/02/21 HTML / CSS
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
保护野生动物倡议书
2014/05/16 职场文书
教师节标语大全
2014/10/07 职场文书
校长新学期致辞
2015/07/30 职场文书
新学期感想
2015/08/10 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL
MySQL 全文检索的使用示例
2021/06/07 MySQL
MySQL 十大常用字符串函数详解
2021/06/30 MySQL