教你使用Jenkins集成Harbor自动发布镜像

目录
  • 1、概述
  • 2、Jenkins 脚本式发布镜像
  • 3、Jenkins 插件式发布镜像

1、概述

在实际生产中,如果进行手动发布镜像到 Harbor,那么实在太 low 了。实际中,一般会结合 Jenkins 的流水线,进行自动构建和发布。

大致流程说明:

  • 开发人员每天把代码提交到 Gitlab 代码仓库
  • Jenkins 从 Gitlab 代码仓库中拉取项目源码,进行编译并打成 jar 包;然后构建成 Docker 镜像,将镜像推送到
  • Harbor 私有镜像仓库
  • Jenkins 发送 SSH 远程命令,让生成部署服务器从 Harbor 私有镜像仓库中拉取镜像到本地;然后创建容器
  • 最后用户可以访问到容器

2、Jenkins 脚本式发布镜像

新建构建任务

配置代码仓库

上传成果物到服务器

因 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

发布镜像

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 文件的内容根据实际项目情况进行修改。

构建并验证

登录 Harbor 查看是否推送镜像到 Harbor 镜像仓库成功

3、Jenkins 插件式发布镜像

安装 CloudBees Docker Build and Publish 插件
Manage Jenkins -> Manage Plugins

添加凭证

Manage Jenkins -> Manage Credentials

创建一个 Harbor 的账密凭证

构建增加 Docker Build and Publish

在点击高级选项中可以设置

  • Build Context:构建上下文路径
  • Dockerfile Path:Dockerfile 文件的路径

根据实际情况配置,配置如下:

经过以上设置,即可进行 Jenkins 任务执行,构建镜像,执行dockerfile时其实就已经将镜像仓库的jar拷贝到了运行目录下,然后使用脚本在容器中启动了镜像jar,全自动,用户可以直接访问。

到此这篇关于Jenkins 集成 Harbor 自动发布镜像的文章就介绍到这了,更多相关Jenkins Harbor 镜像内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Jenkins构建Docker镜像并推送至Harbor仓库的实现

    目录 Dockerfile文件 pom.xml Jenkins配置 ​ spring boot项目通过Jenkins集成构建Docker镜像推送到harbor仓库并启动容器然后拉取镜像到本地运行容器 Dockerfile文件 位置:存在根目录下,与src同级 FROM java:8 # 作者 MAINTAINER zhaoyc VOLUME /tmp #ARG JAR_FILE #将jar包添加到容器中并更名为app.jar ADD target/*.jar app.jar RUN bash -

  • 教你使用Jenkins集成Harbor自动发布镜像

    目录 1.概述 2.Jenkins 脚本式发布镜像 3.Jenkins 插件式发布镜像 1.概述 在实际生产中,如果进行手动发布镜像到 Harbor,那么实在太 low 了.实际中,一般会结合 Jenkins 的流水线,进行自动构建和发布. 大致流程说明: 开发人员每天把代码提交到 Gitlab 代码仓库 Jenkins 从 Gitlab 代码仓库中拉取项目源码,进行编译并打成 jar 包:然后构建成 Docker 镜像,将镜像推送到 Harbor 私有镜像仓库 Jenkins 发送 SSH 远

  • jenkins+maven+svn自动部署和发布的详细图文教程

    Jenkins Jenkins是一个开源的.可扩展的持续集成.交付.部署的基于web界面的平台.允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成. 通常我们使用Jenkins主要实现以下功能: 持续集成指的是,频繁地(一天多次)将代码集成到主干.将软件个人研发的部分向软件整体部分交付,频繁进行集成以便更快地发现其中的错误. 持续交付指的是,频繁地将软件的新版本,交付给质量团队或者用户,以供评审.如果评审通过,代码就进入生产阶段. 正文开始 博主前几个月刚被忽悠到一

  • jenkins配置golang 代码工程自动发布的实现方法

    目录 前沿 一.在jenkins宿主机上配置go环境: 1.安装go: 2.配置环境变量 3.验证环境是否可用 二.jenkis上配置项目 1.jks上新建项目 2.“源码管理”菜单添加git信息 3.“构建”->增加构建步骤->Execute shell (1)编译go代码: (2)打包成镜像并且推送到仓库: (3)通过ansible在开发服务器上执行删除容器启动新容器脚本: 4.如何使用jks的功能 1).从git上拉代码: 2).执行我的shell脚本:脚本的内容有: 5.调试方法 总结

  • Jenkins+tomcat自动发布的热部署/重启及遇到的问题解决办法(推荐)

    一.背景 公司的项目一直手动maven打包.上传服务器.关闭/开启tomcat,整个流程下来耗时耗力,虽然可以将所有流程通过shell脚本一次性解决,但如果可以通过idea的Jenkins插件一键自动部署,那更省时省力. 下面是一个简单的发布tomcat的shell脚本,执行下面脚本的前提是要在服务器中安装了git.maven # 先关闭tomcat进程 kill -9 `ps aux|grep tomcat|grep -v 'grep'| awk 'NR==1{print $2}'` # 切换

  • 手把手教你SpringBoot快速集成Swagger的配置过程

    导语 相信大家无论是做前端还是做后端的,都被接口接口文档所折磨过,前端抱怨接口文档和后端给的不一致,后端抱怨写接口文档很麻烦,所以Swagger就诞生了.直接配置即可自动生成接口文档,而且提供了高效的API测试 话不多说直接开干 导入SpringBoot集成Swagger所需要的依赖 <!--web方便测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId&g

  • spring boot集成smart-doc自动生成接口文档详解

    目录 前言 功能特性 1 项目中创建 /src/main/resources/smart-doc.json配置文件 2 配置内容如下(指定文档的输出路径) 3 pom.xml下添加配置 4 运行插件 5 找到存放路径浏览器打开 6 测试结果 前言 smart-doc 是一款同时支持 java restful api 和 Apache Dubbo rpc 接口文档生成的工具,smart-doc 颠覆了传统类似 swagger 这种大量采用注解侵入来生成文档的实现方法. smart-doc 完全基于

  • Jenkins集成SonarQube的方法详解

    Jenkins 集成 SonarQube Scanner 1. 安装Jenkins 下载安装包,这里我们下载war包:https://jenkins.io/download/ 运行jenkins.war的方式有两种: 第一种:将其放到tomcat中运行(放到webapps目录下,启动tomcat) 第二种:直接执行 java -jar jenkins.war --httpPort=8080 第三种:Docker方式部署: #查看jenkins版本命令 docker search jenkins

  • 发工资啦!教你用Python实现邮箱自动群发工资条

    一.excel的内容 二.效果 三.需要用的库: openpyxl smptlib email.mime.text email.header 四.实现步骤 4.1 获取excel表的数据 wb = load_workbook('数据表.xlsx') sheet = wb.active for row in sheet: for cell in row: print(cell.value) 4.2 编写邮件内容 使用字符串拼接成html for row in sheet: tbody = '<tr

  • 教你怎么用java一键自动生成数据库文档

    这是该工具的github地址:https://github.com/pingfangushi/screw 一.引入pom.xml依赖 <dependencies> <!-- screw 库,简洁好用的数据库表结构文档生成器 --> <dependency> <groupId>cn.smallbun.screw</groupId> <artifactId>screw-core</artifactId> <version

随机推荐