您当前的位置:首页 > 网站建设 > 网站维护
| php | asp | css | H5 | javascript | Mysql | Dreamweaver | Delphi | 网站维护 | 帝国cms | React | 考试系统 | ajax | jQuery |

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

51自学网 2022-07-22 18:49:13
  网站维护

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/springdockerdocker build -t zwt:v1.0 .docker login -u admin -p Harbor123 192.168.10.8docker tag zwt:v1.0 192.168.10.8/omg/zwt:v1.0docker push 192.168.10.8/omg/zwt:v1.0

创建 Dockerfile
构建后的 jar 上传到如下路径

/home/huangjinjin/software/springdocker

所以在该路径下创建 Dockerfile 文件,内容如下:

FROM openjdk:8-jre-slim                       //指定jdkMAINTAINER huangjinjin "huangjinjin@qq.com"   //作者和邮箱描述ENV PARAMS=""                                 //赋值ENV TZ=PRC                                    //赋值RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezoneWORKDIR /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,全自动,用户可以直接访问。


下载地址:
Docker镜像构建之docker commit的使用
使用Docker容器部署rocketmq单机的全过程
51自学网,即我要自学网,自学EXCEL、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。
京ICP备13026421号-1