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

 更新时间:2022年04月03日 11:08:08   作者:bst@微胖子  
这篇文章主要介绍了Jenkins 集成 Harbor 自动发布镜像,主要包括Jenkins 脚本式发布镜像及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 镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解如何修改 Docker 默认网桥地址

    详解如何修改 Docker 默认网桥地址

    这篇文章主要介绍了详解如何修改 Docker 默认网桥地址,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • 使用docker在服务器运行多个php版本

    使用docker在服务器运行多个php版本

    这篇文章主要介绍了利用docker在服务器运行多个版本php,本文以php7为例,通过实例代码的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-04-04
  • Docker同时安装MySQL和MariaDB的方法步骤

    Docker同时安装MySQL和MariaDB的方法步骤

    这篇文章主要介绍了Docker同时安装MySQL和MariaDB的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Docker批量删除特定前缀的镜像Tag的方法

    Docker批量删除特定前缀的镜像Tag的方法

    在 Docker 容器化技术日益普及的今天,镜像管理成为了一个不可忽视的问题,随着项目的发展,镜像的数量会迅速增加,特别是当我们频繁地构建和推送新版本时,如果不及时清理,这些镜像会占用大量的存储空间,影响系统性能,本文介绍了Docker批量删除特定前缀的镜像Tag的方法
    2024-11-11
  • docker-compose java.net.UnknownHostException问题

    docker-compose java.net.UnknownHostException问题

    这篇文章主要介绍了docker-compose java.net.UnknownHostException问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Docker版的MySQL5.7升级到MySQL8.0.13,数据迁移

    Docker版的MySQL5.7升级到MySQL8.0.13,数据迁移

    这篇文章主要介绍了Docker版的MySQL5.7升级到MySQL8.0.13,数据迁移,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Docker制作镜像的完整过程

    Docker制作镜像的完整过程

    本文主要介绍了Docker制作镜像的完整过程,以制作CentOS镜像为例,讲述对镜像自定义,打包以及推送的远程仓库的过程,感兴趣的可以了解一下
    2021-11-11
  • docker中psql数据库备份与恢复详解

    docker中psql数据库备份与恢复详解

    在本篇文章里小编给大家整理的是关于docker中psql数据库基本操作内容,需要的朋友们可以学习参考下。
    2020-02-02
  • 云centos开启docker远程服务链接的实现步骤

    云centos开启docker远程服务链接的实现步骤

    本文主要介绍了云centos开启docker远程服务链接,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • 解决Docker安装错误failure:repodata/repomd.xml from docker-ce-stable

    解决Docker安装错误failure:repodata/repomd.xml from docke

    在使用yum命令安装docker或其他工具时可能会遇到failure_repodata_repomd.xmlfromdocker-ce-stable_[Errno256]Nomoremirrorstotry的错误,原因可能是yum源配置问题,解决方法包括重置yum源,删除多余的repo文件
    2024-11-11

最新评论