分享好友 最新动态首页 最新动态分类 切换频道
Maven 插件之 docker-maven-plugin 的使用
2024-12-26 20:43

目录

Maven 插件之 docker-maven-plugin 的使用

  • docker-maven-plugin 介绍
  • 环境、软件准备
  • Demo 示例
    • 配置 DOCKER_HOST
    • 示例构建镜像
      • 指定构建信息到 POM 中构建
      • 使用 Dockerfile 构建
    • 使用命令
    • 绑定 Docker 命令到 Maven各个阶段
    • 使用私有Docker仓库地址
    • 安全认证配置
  • FAQ

1、docker-maven-plugin 介绍

在我们持续集成过程中,项目工程一般使用 Maven 编译打包,然后生成镜像,通过镜像上线,能够大大提供上线效率,同时能够快速动态扩容,快速回滚,着实很方便。docker-maven-plugin 插件就是为了帮助我们在Maven工程中,通过简单的配置,自动生成镜像并推送到仓库中。

2、环境、软件准备

本次演示环境,我是在本机 Mac OX 上操作,以下是安装的软件及版本

  1. Docker:version 17.03.1-ce
  2. Maven:version 3.3.9
  3. Java: version 1.8.0_91
  4. docker-maven-plugin:1.0.0

注意:这里我们要测试 Java Maven 项目用 docker-maven 插件打镜像,上传镜像等操作,所以需要先安装一下 Docker、Maven、Java,这里忽略安装过程。

3、Demo 示例

3.1 配置 DOCKER_HOST

docker-maven-plugin 插件默认连接本地 Docker 地址为:localhost:2375,所以我们需要先设置下环境变量。

 

注意:如果没有设置  环境变量,可以命令行显示指定  来执行,如我本机指定 DOCKER_HOST:。

3.2 示例构建镜像

构建镜像可以使用一下两种方式,第一种是将构建信息指定到 POM 中,第二种是使用已存在的 Dockerfile 构建。
第一种方式,支持将 , , ,  以及  信息配置在 POM 中,不需要使用 Dockerfile 配置。但是如果使用  或其他 Dockerfile 中的命令的时候,需要使用第二种方式,创建一个 Dockerfile,并在 POM 中配置  来指定路径即可。

这里我们以一个 Java Maven 项目 mavendemo 作为示例演示一下。

3.2.1 指定构建信息到 POM 中构建

 

3.2.2 使用 Dockerfile 构建

 

以上两种方式执行效果是一样的,执行输出过程大致如下

 

执行完成后,使用查看生成的镜像

 

3.3 执行命令

 只执行 build 操作

 执行 build 完成后 push 镜像

 执行 build 并 push 指定 tag 的镜像
注意:这里必须指定至少一个 imageTag,它可以配置到 POM 中,也可以在命令行指定。命令行指定如下,POM 文件中指定配置如下

 

3.4 绑定Docker 命令到 Maven 各个阶段

我们可以绑定 Docker 命令到 Maven 各个阶段,我们可以把 Docker 分为 build、tag、push,然后分别绑定 Maven 的 package、deploy 阶段,此时,我们只需要执行就可以完成整个 build、tag、push操作了,当我们执行就只完成 build、tag 操作。除此此外,当我们想跳过某些步骤或者只执行某个步骤时,不需要修改 POM 文件,只需要指定跳过 docker 某个步骤即可。比如当我们工程已经配置好了自动化模板了,但是这次我们只需要打镜像到本地自测,不想执行 push 阶段,那么此时执行要指定参数就可跳过 push 操作了。

 

以上示例,当我们执行时,执行 build、tag 操作,当执行时,执行build、tag、push 操作。如果我们想跳过 docker 某个过程时,只需要

  •  跳过 build 镜像
  •  跳过 tag 镜像
  •  跳过 push 镜像
  •  跳过整个阶段

例如:我们想执行 package 时,跳过 tag 过程,那么就需要。

3.5 使用私有 Docker 仓库地址

实际工作环境中,我们需要 push 镜像到我们私有 Docker 仓库中,使用d ocker-maven-plugin 插件我们也是很容易实现,有几种方式实现

一、修改 POM 文件 imageName 操作

 

二、修改 POM 文件中 newName 操作

 

3.6 安全认证配置

当我们 push 镜像到 Docker 仓库中时,不管是共有还是私有,经常会需要安全认证,登录完成之后才可以进行操作。当然,我们可以通过命令行  登录,但是对于自动化流程来说,就不是很方便了。使用 docker-maven-plugin 插件我们可以很容易实现安全认证。

首先在 Maven 的配置文件 setting.xml 中增加相关 server 配置,主要配置 Docker registry用户认证信息。

 

然后只需要在 pom.xml 中使用 server id 即可。

 

3.7 其他参数

docker-maven-plugin 插件还提供了很多很实用的配置,稍微列举几个参数吧。

参数说明默认值build 时强制覆盖 tag,配合 imageTags 使用falsebuild 时,指定 –no-cache 不使用缓存falsebuild 时,指定 –pull=true 每次都重新拉取基础镜像falsebuild 完成后 push 镜像falsebuild 完成后,push 指定 tag 的镜像,配合 imageTags 使用falsepush 镜像失败,重试次数5push 镜像失败,重试时间10sbuild 时,指定 –rm=true 即 build 完成后删除中间容器falsebuild 时,使用最近的 git commit id 前7位作为tag,例如:image:b50b604,前提是不配置 newNamefalse

4、FAQ

1、执行 build images 时,报错情况一

 

这个是因为 Docker 服务没有启动造成的,启动 Docker 即可。

2、执行 build images 时,报错情况二

 

这个是因为镜像名字不正确,Docker 镜像名称需匹配[a-z0-9-_.]。

参考资料

  • docker-maven-plugin
最新文章
用AI生成美女写真,轻松获取高清虚拟女友!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个数字化的时代,越来越多人开始探索AI技术的多种可能性,尤其是在艺术创作和个人化艺术
我院举办第二届全国职业生涯规划大赛院级选拔赛
12月13日下午院209教室,我院举办第二届全国职业生涯规划大赛院级选拔赛,由邓环、李大伟、邹桂森三位教授担任评委。此次比赛旨在帮助同学们明确职业目标,提升职业规划能力,为未来职业生涯奠定坚实基础。李凯旭、周广超、杨昱、邵朋飞同
白帽SEO技术提升网站排名的方法
提升网站排名的白帽SEO技术在数字化时代,提升网站在搜索引擎中的排名至关重要。白帽SEO技术是指遵循搜索引擎规则的优化方法,旨在提高网站的可见性和用户体验。通过正确的策略,不仅可以吸引更多流量,还能提高网站的可信度和转化率。本文
露营基地线上预约营位小程序APP原生系统开发
前言:露营基地营位预约小程序开发,露营基地营位预约APP开发露营基地线上预约营位小程序APP的系统开发,旨在为用户提供便捷、高效的露营体验。以下是对该开发项目的详细分析:用户注册与登录:支持手机号、第三方账号(如微信、QQ)等多种
谷歌优化推广权威指南,解锁品牌国际化之路
谷歌优化推广权威机构助力品牌国际化,为您提供专业策略,优化搜索排名,提升品牌知名度,拓展国际市场,让您的品牌走向世界舞台。随着互联网的快速发展,企业对网络营销的需求日益增长,推广作为国际知名搜索引擎,拥有庞大的用户群体和丰
视频处理与流媒体技术详解
面试题1 为什么巨大的原始视频可以编码成很小的视频呢?这其中的技术是什么呢? 1)空间冗余:图像相邻像素之间有较强的相关性2)时间冗余:视频序列的相邻图像之间内容相似3)编码冗余:不同像素值出现
蛇年品牌创意营销开战,年味就这么来了!
当你还沉浸在“麦学”的爆火讨论中时,突然发现,“2025年春晚”居然水灵灵地上了热搜!OMG!竟然有种时光穿越的错觉,年味就这么来了?!最近,中央广播电视总台发布2025年春节联欢晚会主题“巳巳如意,生生不息”和LOGO设计。以及2025蛇
【5219(电信版)WiFi万能钥匙下载】酷派5219 电信版WiFi万能钥匙5.1.02免费下载
下载WiFi万能钥匙,认准官方正版!免费安全WiFi热点,无忧一键连接。日常任务随时做,轻松赚现金外快~【积分赚钱】完成简单日常任务,轻轻松松赚现金【安全免费】随时随地免费连接,畅享安全免费WiFi,节省流量快人一步!【权威认证】通过
昆明专业PPT设计公司,ppt制作,ppt代做,ppt设计,ppt美化,h5制作
昆明PPT设计公司团队精通:PPT设计,PPT制作,ppt代做,ppt美化,ppt定制,PPT策划,互联动以“创意设计+策划制作团队的ppt设计公司,年文案写作团队,1对1写作-包修改-满意为止,可加急当天出稿.ppt设计公司,保密性强,绝不外泄,按时交稿,可加急-不限
酷狗kgm格式怎么转换为mp3
酷狗音乐作为一款广受欢迎的音乐播放软件,为了保护音乐版权,采用了独有的kgm加密文件格式。然而,这种格式并不兼容所有设备和播放器,因此,许多用户希望将kgm格式转换为更为通用的mp3格式。以下是一些简单实用的转换方法。**方法一:使
相关文章
推荐文章
发表评论
0评