记录, 使用jenkins自动打包并向私库推送镜像, 不限制于Harbor。该问题因为一个小点没有想到, 导致调查了一天,多次尝试,阅读大量相关的文章并未解决作者的问题。 所以作为记录,供读者多一个参考的方向。

使用说明, jenkins,github, docker, Harbor, nexus3均已部署, 环境jdk, maven, git 已配置。
nexus3作为maven私库, 其他服务jar包引用使用。
Harbor作为集群镜像服务, 其他子节点配置 “insecure-registries” 并登录即可使用Harbor作为镜像私库。
两者均使用的原因, 无非是Harbor镜像管理优于nexus3.

  1. 项目配置, 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>
  1. 子工程,(对外接口项目/实现项目)需要在实现的项目内的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启动, 会导致报错。

  1. 在实现项目下 与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" ]
  1. jenkins 配置

    需要注意, 将 mvn deploy命令 下放到shell中执行。
    在parent目录下 执行 mvn clean
    然后执行 mvn deploy, 该命令会进行打包,编译, 推送等一系列操作
    作者使用参数话构建, 使用tags作为镜像版本, 也可定义其他版本, 如时间等。
  2. 执行
    执行之前确保jenkins指向的docker已进行登录私库。

    在控制台输出中, 看到以下信息, 则表示构建,推送成功


    并在私库中确认(Harbor)


    可以看到打包的私库以进行上传。

说明: 打不同的版本是为了可以对项目进行升级或降级使用。

jenkins自动打包并向Harbor推送镜像相关推荐

  1. [基于harbor部署私有仓库] 4 推送镜像到harbor

    目录 1 场景解释 2 配置推送docker 3 推送 3.1 准备 3.2 标记镜像 3.3 登录docker(可省) 3.4 推送镜像 3.5 查看 4 参考 5 你们可能遇到的问题 5.1 se ...

  2. jenkins自动打包设置打包文件脚本

    jenkins自动打包.user.js // ==UserScript== // @name jenkins自动打包 // @namespace http://tampermonkey.net/ // ...

  3. 如何通过域服务器推送安装文件,域环境推送exe程序并自动安装教程域环境推送exe程序并自动安装教程.pdf...

    域环境推送exe程序并自动安装教程域环境推送exe程序并自动安装教程 域环境推送exe 程序并自动安装教程 一.思路 微软可以通过组策略对域中的计算机实现对 MSI 格式的软件程序实现派发后自动运行, ...

  4. 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 ...

  5. 如何正确推送镜像到私有仓库Harbor(http方式)

    1 缘起 部署了Harbor之后,就要推送镜像, 为后续K8S拉取镜像做准备. 由于是测试环境,因此使用http方式推送镜像. 但是,推送镜像到Harbor过程中,遇到了一系列问题, 遇到一个解决一个 ...

  6. python自动推送消息_Python自动接收微信群消息并推送相应的公众号文章

    原标题:Python自动接收微信群消息并推送相应的公众号文章 封面图片:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社 用书教师可以联系 ...

  7. 土拨鼠网站日记管理(分析推送二合一)】宝塔插件之自动爬取全站URL推送说明书

    自动爬取全站URL推送说明书: 此功能将会针对爬取的站点进行全站URL爬取并且进行推送,爬取的每一条URL都会只推送一次,不会重复推送. 1.设置爬取的URL尽量是本服务器的站点,如果要推送别的站点可 ...

  8. 【Docker】docker推送镜像到harbor

    前提条件 首先你需要有一个Harbor的账号,并在harbor中创建一个项目 第一步:安装docker 传送门:[Docker]Docker 快速入门(精讲)/ 二.Docker 安装 第二步:配置镜 ...

  9. Docker推送镜像到私有仓库Harbor

    概述 因为项目需要将镜像推送到私有仓库,测试过程中遇到些问题,用文章记录下来. 版本信息 操作系统:银河麒麟V10SP2 Docker:20.10.17 Docker-Compose:1.22 操作步 ...

最新文章

  1. python就业方向有哪些-Python如何零基础入门?就业方向有哪些?
  2. 初学python者自学anaconda的正确姿势
  3. Junit_测试概述
  4. 【openSUSE】软件源和软件搜索
  5. linux mount nfs 超时,I / O无法(偶尔)挂载NFS-服务器超时
  6. VC中ComboBox控件用法详解
  7. WYSISYN编辑器 Prosemirror 入门
  8. 大一c语言常见编程题,自己整理的C语言常见编程题
  9. 2019年下半年软件设计师下午真题试题(案例分析)及答案
  10. IDEA破解码(至2099)
  11. 初探Linux--鸟哥私房菜读书笔记
  12. SCAR:Scalable Consensus Algorithm 一种可伸缩共识算法
  13. amCharts 报表(转)
  14. 关于Android import-module 和NDK_MODULE_PATH
  15. java背单词软件_求背英语单词的手机JAVA软件
  16. 关于Arduino Esp8266深度睡眠(deepsleep)无法唤醒的解决办法
  17. pyinstaller : 无法将“pyinstaller”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。所在位置 行:1
  18. 代码随想录算法训练营第一天
  19. 华为笔记本机械盘卡死_华为笔记本死机了动不了怎么办
  20. 变电站监控系统学习记录

热门文章

  1. 使用基与maven的构建插件在构建阶段压缩css,js并为压缩后的文件追加版本号
  2. 二手车微信小程序来袭
  3. Python-OpenCV按住鼠标左键绘制图形
  4. 表格查询(去除重复数据)
  5. 画圆形头像的简单画法
  6. 利用临时文件恢复PowerPoint(PPT)文件
  7. 那些35岁的程序员哪里去了?
  8. 【360补天计划】记第一次漏洞提交
  9. html表格中复选框代码怎么写,获取html表中的选中复选框
  10. 【无标题】JAVA解压ZIP文件并解析Excel(easyExcel)