教你使用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+Tomcat实现负载均衡、动静分离的原理解析
Mar 31 Servers
nginx location中多个if里面proxy_pass的方法
Mar 31 Servers
利用Nginx代理如何解决前端跨域问题详析
Apr 02 Servers
Kubernetes控制节点的部署
Apr 01 Servers
Docker 镜像介绍以及commit相关操作
Apr 13 Servers
nginx搭建NFS网络文件系统
Apr 14 Servers
Tomcat项目启动失败的原因和解决办法
Apr 20 Servers
Windows和Linux上部署Golang并运行程序
Apr 22 Servers
Linux下搭建SFTP服务器的命令详解
Jun 25 Servers
TaiShan 200服务器安装Ubuntu 18.04的图文教程
Jun 28 Servers
在windows server 2012 r2中安装mysql的详细步骤
Jul 23 Servers
SpringBoot前端后端分离之Nginx服务器下载安装过程
Aug 14 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 adodb操作mysql数据库
2009/03/19 PHP
PHP 检查扩展库或函数是否可用的代码
2010/04/06 PHP
PHP生成数组再传给js的方法
2014/08/07 PHP
php筛选不存在的图片资源
2015/04/28 PHP
php使用pdo连接sqlite3的配置示例
2016/05/27 PHP
php使用curl伪造浏览器访问操作示例
2019/09/30 PHP
简单JS代码压缩器
2006/10/12 Javascript
js对象的比较
2011/02/26 Javascript
jquery对ajax的支持介绍
2013/12/10 Javascript
jquery分割字符串的方法
2015/06/24 Javascript
js检测离开或刷新页面时表单数据是否更改的方法
2016/08/02 Javascript
Angular1.x自定义指令实例详解
2017/03/01 Javascript
Vue.js实现分页查询功能
2020/11/15 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
2019/07/05 Javascript
如何构建一个Vue插件并生成npm包
2020/10/26 Javascript
[02:00]最后,我终于出了辉耀
2018/03/27 DOTA
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
Django添加feeds功能的示例
2018/08/07 Python
使用Python的SymPy库解决数学运算问题的方法
2019/03/27 Python
Python列表的切片实例讲解
2019/08/20 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
keras 多gpu并行运行案例
2020/06/10 Python
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
后勤人员自我鉴定
2013/10/20 职场文书
英语专业应届生求职信范文
2013/11/15 职场文书
九年级政治教学反思
2014/02/06 职场文书
作风转变心得体会
2014/09/02 职场文书
项目合作协议书
2014/09/23 职场文书
环卫工作个人总结
2015/03/04 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
Nginx工作原理和优化总结。
2021/04/02 Servers
sass 常用备忘案例详解
2021/09/15 HTML / CSS
安装Windows Server 2012 R2企业版操作系统并设置好相关参数
2022/04/29 Servers