教你使用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设置日志打印post请求参数的方法
Mar 31 Servers
win10安装配置nginx的过程
Mar 31 Servers
详解Nginx 工作原理
Mar 31 Servers
图文详解Nginx版本平滑升级方案
Sep 15 Servers
Nginx防盗链与服务优化配置的全过程
Jan 18 Servers
docker-compose部署Yapi的方法
Apr 08 Servers
CentOS7安装GlusterFS集群以及相关配置
Apr 12 Servers
Nginx反向代理、重定向
Apr 13 Servers
nginx搭建NFS网络文件系统
Apr 14 Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
May 25 Servers
TaiShan 200服务器安装Ubuntu 18.04的图文教程
Jun 28 Servers
Windows7下FTP搭建图文教程
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
Zend公司全球首推PHP认证
2006/10/09 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
yii2简单使用less代替css示例
2017/03/10 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
一些技巧性实用js代码小结
2009/10/14 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
iframe 上下滚动条如何默认在下方实现原理
2012/12/10 Javascript
jQuery对象和Javascript对象之间转换的实例代码
2013/03/20 Javascript
JS 如何获取radio选中后的值及不选择取radio的值
2013/10/28 Javascript
jquery中get和post的简单实例
2014/02/04 Javascript
网页右侧悬浮滚动在线qq客服代码示例
2014/04/28 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
详解vue如何使用rules对表单字段进行校验
2018/10/17 Javascript
使用vue开发移动端管理后台的注意事项
2019/03/07 Javascript
详解vue后台系统登录态管理
2019/04/02 Javascript
vue的路由映射问题及解决方案
2019/10/14 Javascript
简单了解JavaScript sort方法
2019/11/25 Javascript
vue学习笔记之slot插槽基本用法实例分析
2020/02/01 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
echarts柱状图背景重叠组合而非并列的实现代码
2020/12/10 Javascript
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
Python读写ini文件的方法
2015/05/28 Python
浅谈Python2获取中文文件名的编码问题
2018/01/09 Python
关于PyTorch源码解读之torchvision.models
2019/08/17 Python
Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】
2019/10/30 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
2020/07/01 Python
屈臣氏俄罗斯在线商店:Watsons俄罗斯
2020/08/03 全球购物
介绍一下常见的木马种类
2014/11/15 面试题
租房协议书怎么写
2014/04/10 职场文书
任命书模板
2014/06/04 职场文书
小学开学标语
2014/07/01 职场文书
银行贷款委托书范本
2014/10/11 职场文书
学校政风行风整改方案
2014/10/25 职场文书
Mysql如何实现不存在则插入,存在则更新
2022/03/25 MySQL