教你使用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服务器的下载安装与使用详解
Aug 02 Servers
nginx共享内存的机制详解
Mar 21 Servers
Nginx设置HTTPS的方法步骤 443证书配置方法
Mar 21 Servers
Apache Hudi数据布局黑科技降低一半查询时间
Mar 31 Servers
如何开启Apache,Nginx和IIS服务器的GZIP压缩功能
Apr 29 Servers
apache ftpserver搭建ftp服务器
May 20 Servers
zabbix配置nginx监控的实现
May 25 Servers
windows系统安装配置nginx环境
Jun 28 Servers
彻底卸载VMware虚拟机的超详细步骤记录
Jul 15 Servers
阿里云服务器(windows)手动部署FTP站点详细教程
Aug 05 Servers
Win10系统搭建ftp文件服务器详细教程
Aug 05 Servers
Flink 侧流输出源码示例解析
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
php伪静态之APACHE篇
2014/06/02 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
javascript实现日历控件(年月日关闭按钮)
2012/12/12 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
文档对象模型DOM通俗讲解
2013/11/01 Javascript
jquery对ajax的支持介绍
2013/12/10 Javascript
利用jquery写的左右轮播图特效
2014/02/12 Javascript
Bootstrap Paginator分页插件与ajax相结合实现动态无刷新分页效果
2016/05/27 Javascript
详解Bootstrap各式各样的按钮(推荐)
2016/12/13 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
Angular 4依赖注入学习教程之FactoryProvider配置依赖对象(五)
2017/06/04 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
深入了解JavaScript 的 WebAssembly
2019/06/15 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
SpringBoot+Vue 前后端合并部署的配置方法
2020/12/30 Vue.js
在Django框架中设置语言偏好的教程
2015/07/27 Python
各个系统下的Python解释器相关安装方法
2015/10/12 Python
Flask-Mail用法实例分析
2018/07/21 Python
python批量修改ssh密码的实现
2019/08/08 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
Pycharm导入anaconda环境的教程图解
2020/07/31 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
在pycharm中文件取消用 pytest模式打开的操作
2020/09/01 Python
sqlalchemy实现时间列自动更新教程
2020/09/02 Python
python实现简单猜单词游戏
2020/12/24 Python
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
屈臣氏乌克兰:Watsons UA
2019/10/29 全球购物
护士实习生自我鉴定范文
2013/12/10 职场文书
《美丽的彩虹》教学反思
2014/02/25 职场文书
党员公开承诺书内容
2014/05/20 职场文书
村党总支部公开承诺书2016
2016/03/25 职场文书
Python提取PDF指定内容并生成新文件
2021/06/09 Python
原生JS实现飞机大战小游戏
2021/06/09 Javascript