jenkins自动打包并向Harbor推送镜像
记录, 使用jenkins自动打包并向私库推送镜像, 不限制于Harbor。该问题因为一个小点没有想到, 导致调查了一天,多次尝试,阅读大量相关的文章并未解决作者的问题。 所以作为记录,供读者多一个参考的方向。
使用说明, jenkins,github, docker, Harbor, nexus3均已部署, 环境jdk, maven, git 已配置。
nexus3作为maven私库, 其他服务jar包引用使用。
Harbor作为集群镜像服务, 其他子节点配置 “insecure-registries” 并登录即可使用Harbor作为镜像私库。
两者均使用的原因, 无非是Harbor镜像管理优于nexus3.
- 项目配置, parent工程下, 如下配置
<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><docker.registry.name>test</docker.registry.name><docker.repository>hub.k8s.com</docker.repository></properties>
docker.repository: Harbor镜像私库,该域名为本地域名, 需要在本地进行配置(win -> C:\Windows\System32\drivers\etc\hosts liunx -> /etc/hosts)
docker.registry.name: Harbor新建的项目分组
<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.8</source><target>1.8</target></configuration></plugin></plugins></build>
- 子工程,(对外接口项目/实现项目)需要在实现的项目内的pom内添加
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- 打包时跳过单元测试 --><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-surefire-plugin</artifactId><configuration><skip>true</skip></configuration></plugin><plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>1.4.13</version><executions><execution><id>default</id><goals><goal>build</goal><goal>push</goal></goals></execution></executions><configuration><repository>${docker.repository}/${docker.registry.name}/${project.artifactId}</repository><tag>${project.version}</tag><buildArgs><JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration></plugin></plugins></build>
本地打包时, 需要将此配置进行注释, 打包时会根据配置进行打镜像, 若本地没有docker启动, 会导致报错。
- 在实现项目下 与pom同目录下配置 Dockerfile (名称一致)
关于Dockerfile各个指令的含义, 作用本文不做解释, 感兴趣的可自行查阅
FROM openjdk:8
MAINTAINER peter <xx@qq.com>
VOLUME /tmp
ARG JAR_FILE
ADD ${JAR_FILE} app.jar
RUN sh -c 'touch /app.jar'
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
- jenkins 配置
需要注意, 将 mvn deploy命令 下放到shell中执行。
在parent目录下 执行 mvn clean
然后执行 mvn deploy, 该命令会进行打包,编译, 推送等一系列操作
作者使用参数话构建, 使用tags作为镜像版本, 也可定义其他版本, 如时间等。 - 执行
执行之前确保jenkins指向的docker已进行登录私库。
在控制台输出中, 看到以下信息, 则表示构建,推送成功
并在私库中确认(Harbor)
可以看到打包的私库以进行上传。
说明: 打不同的版本是为了可以对项目进行升级或降级使用。
jenkins自动打包并向Harbor推送镜像相关推荐
- [基于harbor部署私有仓库] 4 推送镜像到harbor
目录 1 场景解释 2 配置推送docker 3 推送 3.1 准备 3.2 标记镜像 3.3 登录docker(可省) 3.4 推送镜像 3.5 查看 4 参考 5 你们可能遇到的问题 5.1 se ...
- jenkins自动打包设置打包文件脚本
jenkins自动打包.user.js // ==UserScript== // @name jenkins自动打包 // @namespace http://tampermonkey.net/ // ...
- 如何通过域服务器推送安装文件,域环境推送exe程序并自动安装教程域环境推送exe程序并自动安装教程.pdf...
域环境推送exe程序并自动安装教程域环境推送exe程序并自动安装教程 域环境推送exe 程序并自动安装教程 一.思路 微软可以通过组策略对域中的计算机实现对 MSI 格式的软件程序实现派发后自动运行, ...
- vite项目在jenkins自动打包报错:failed to load config from ../vite.config.js You installed esbuild on
vite项目在jenkins自动打包报错找不到esbuild-linux-64 在window环境开发用的找不到esbuild-windows-64,在linux环境构建需要使用esbuild-lin ...
- 如何正确推送镜像到私有仓库Harbor(http方式)
1 缘起 部署了Harbor之后,就要推送镜像, 为后续K8S拉取镜像做准备. 由于是测试环境,因此使用http方式推送镜像. 但是,推送镜像到Harbor过程中,遇到了一系列问题, 遇到一个解决一个 ...
- python自动推送消息_Python自动接收微信群消息并推送相应的公众号文章
原标题:Python自动接收微信群消息并推送相应的公众号文章 封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 用书教师可以联系 ...
- 土拨鼠网站日记管理(分析推送二合一)】宝塔插件之自动爬取全站URL推送说明书
自动爬取全站URL推送说明书: 此功能将会针对爬取的站点进行全站URL爬取并且进行推送,爬取的每一条URL都会只推送一次,不会重复推送. 1.设置爬取的URL尽量是本服务器的站点,如果要推送别的站点可 ...
- 【Docker】docker推送镜像到harbor
前提条件 首先你需要有一个Harbor的账号,并在harbor中创建一个项目 第一步:安装docker 传送门:[Docker]Docker 快速入门(精讲)/ 二.Docker 安装 第二步:配置镜 ...
- Docker推送镜像到私有仓库Harbor
概述 因为项目需要将镜像推送到私有仓库,测试过程中遇到些问题,用文章记录下来. 版本信息 操作系统:银河麒麟V10SP2 Docker:20.10.17 Docker-Compose:1.22 操作步 ...
最新文章
- python就业方向有哪些-Python如何零基础入门?就业方向有哪些?
- 初学python者自学anaconda的正确姿势
- Junit_测试概述
- 【openSUSE】软件源和软件搜索
- linux mount nfs 超时,I / O无法(偶尔)挂载NFS-服务器超时
- VC中ComboBox控件用法详解
- WYSISYN编辑器 Prosemirror 入门
- 大一c语言常见编程题,自己整理的C语言常见编程题
- 2019年下半年软件设计师下午真题试题(案例分析)及答案
- IDEA破解码(至2099)
- 初探Linux--鸟哥私房菜读书笔记
- SCAR:Scalable Consensus Algorithm 一种可伸缩共识算法
- amCharts 报表(转)
- 关于Android import-module 和NDK_MODULE_PATH
- java背单词软件_求背英语单词的手机JAVA软件
- 关于Arduino Esp8266深度睡眠(deepsleep)无法唤醒的解决办法
- pyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1
- 代码随想录算法训练营第一天
- 华为笔记本机械盘卡死_华为笔记本死机了动不了怎么办
- 变电站监控系统学习记录