教你使用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,全自动,用户可以直接访问。
您可能感兴趣的文章
- 12-20Kubernetes中使用临时容器进行故障排查的方法
- 12-20Nginx设置HTTPS的方法步骤
- 12-20二进制方式安装 Kubernetes1.18.3版本实现脚本
- 12-20Nginx工作模式及代理配置的使用细节
- 12-20ZooKeeper分布式协调服务设计核心概念及安装配置
- 12-20Kubernetes部署可视化地图的十个步骤
- 12-20关于docker清理Overlay2占用磁盘空间的问题(亲测有效)
- 12-20Docker compose配置文件写法及命令使用示例
- 12-20openwrt安装docker并启动的操作方法
- 12-20云原生Kubernetes初始化容器Init使用教程


阅读排行
推荐教程
- 12-07一文教你怎么选择Tomcat对应的JDK版本
- 12-07新版Eclipse集成Tomcat时找不到server选项的解决方法
- 12-06IIS7 应用程序池自动回收关闭的解决方案
- 12-05Windows Server 2019安装VMware
- 12-05Windows服务器默认IE浏览器无法下载文件的解决方法
- 12-05Docker安装Jenkins全过程
- 12-19Zabbix SAML SSO 登录绕过漏洞的操作流程
- 12-15Docker-Compose搭建Spark集群的实现方法
- 12-14Docker Desktop无法正常启动解决(failed to start...)
- 12-14k8s 与docker空间使用分析与清理方法





