可以参考博客:https://blog.csdn.net/aixiaoyang168/article/details/77453974

docker-maven-plugin官网推荐在新项目中使用dockerfile-maven来构建镜像。

docker-maven-plugin的Github地址:https://github.com/spotify/docker-maven-plugin

dockerfile-maven的Github地址:https://github.com/spotify/dockerfile-maven

一、 使用docker-maven-plugin构建镜像

docker-maven-plugin有两种使用方式,一种是使用Dockerfile文件,一种是不使用Dockerfile文件。

1.在 POM中指定构建信息(不使用Dockerfile文件)

在pom.xml中引入该插件

<!-- docker-maven-plugin插件(不带Dockerfile文件) -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<!--用于指定镜像名称-->
<imageName>${project.name}:${project.version}</imageName>
<!--用于指定基础镜像,相当于Dockerfile中的FROM指令-->
<baseImage>java</baseImage>
<!--相当于Dockerfile的ENTRYPOINT指令-->
<entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
<!--是否跳过docker build-->
<skipDockerBuild>true</skipDockerBuild>
<resources>
<resource>
<targetPath>/</targetPath>
<!--用于指定需要复制的根目录,${project.build.directory}表示target目录-->
<directory>${project.build.directory}</directory>
<!--用于指定需要复制的文件。${project.build.finalName}.jar指的是打包后的jar包文件。-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

默认情况下,该插件通过访问localhost:2375来连接本地docker,可以通过设置DOCKER_HOST 环境变量来连接docker.

DOCKER_HOST=tcp://<host>:2375

2.使用Dockerfile文件

如果使用Dockerfile文件,必须指定dockerDirectory元素,那么 baseImage, maintainer, cmd and entryPoint这些元素也会被忽略。dockerDirectory元素所指定的内容将被复制到${project.build.directory}/docker下,resources元素则会复制除此之外的其它文件,例如项目jar文件。

<!--docker-maven-plugin插件(带Dockerfile文件)-->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<imageName>${project.name}:${project.version}</imageName>
<!--Dockerfile文件位置-->
<dockerDirectory>docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>

二、使用

创建镜像

mvn clean package docker:build

推送镜像到Registry

mvn clean package docker:build -DpushImage

推送指定tag的镜像到Registry

mvn clean package docker:build -DpushImageTag

三、绑定Docker 命令到 Maven 各个阶段

docker(六) 使用docker-maven-plugin插件构建docker镜像(已过时)的更多相关文章

  1. Maven插件构建Docker镜像

    背景 微服务架构下,微服务在带来良好的设计和架构理念的同时,也带来了运维上的额外复杂性,尤其是在服务部署和服务监控上.单体应用是集中式的,就一个单体跑在一起,部署和管理的时候非常简单,而微服务是一个网 ...

  2. 使用Maven Archetype插件构建Maven工程原型模板

    创建原型模板 1.在空目录运行archetype:generate上面的命令,待下载完必要的jar包后,首先需要输入内置的原型编号: 1 Choose archetype: 2 1: internal ...

  3. 使用maven插件构建docker镜像

    为什么要用插件 主要还是自动化的考虑,如果额外使用Dockerfile进行镜像生成,可能会需要自己手动指定jar/war位置,并且打包和生成镜像间不同步,带来很多琐碎的工作. 插件选择 使用比较多的是 ...

  4. 使用docker-maven-plugin插件构建docker镜像(已过时)

    可以参考博客:https://blog.csdn.net/aixiaoyang168/article/details/77453974 docker-maven-plugin官网推荐在新项目中使用do ...

  5. docker(七) 使用dockerfile-maven-plugin插件构建docker镜像

    在dockerfile-maven-plugin插件出现之前,还有一个maven插件是docker-maven-plugin,是由同一个作者创造,作者明确表示推荐使用dockerfile-maven- ...

  6. eclipse maven plugin 插件 安装 和 配置

      离线插件 点击下载离线安装包:eclipse-maven-plugin.zip ( for eclipse helios or higher ) .解压缩到任意目录(如这里的plugins目录): ...

  7. Maven plugin插件---appassembler-maven-plugin快速配置

    使用appassembler-maven-plugin 打包自定义目录 1.Pom中添加 <plugin> <artifactId>maven-resources-plugin ...

  8. Maven plugin 插件

    1.maven-surefire-plugin简介: Maven在构件时执行到测试的生命周期时,会使用maven-surefire-plugin运行测试用例,背后执行的Junit或者TestNG的测试 ...

  9. 使用docker Maven插件本地构建docker镜像并发布到远程服务器

    1.登录网站https://start.spring.io/,生成一个基本的SpringBoot应用. 2.将应用导入Eclipse IDE并创建Application类.目录结构如下: Applic ...

随机推荐

  1. [转]快速新建简单的koa2后端服务

    本文转自:https://blog.csdn.net/saucxs/article/details/83788259 既然前端工程化是基于NodeJS,那么选择NodeJs做前后端分离部署也是理所应当 ...

  2. [转]Nodejs学习笔记(十五)--- Node.js + Koa2 构建网站简单示例

    本文转自:https://www.cnblogs.com/zhongweiv/p/nodejs_koa2_webapp.html 目录 前言 搭建项目及其它准备工作 创建数据库 创建Koa2项目 安装 ...

  3. ubuntu所有php扩展php-7.0扩展列表

    sudo apt-get install php7.0-bcmath sudo apt-get install php7.0-bz2 sudo apt-get install php7.0-calen ...

  4. java集合架构

     Collection接口  与  Map接口 1 .collection接口 特点:元素是 无序可重复的集合,无索引的,元素是单例值 子类 :set接口  list接口 1.1 set接口  特点: ...

  5. angular打包后路由和文件路径不对

    base href换成如下script标签 <!-- <base href="/"> --> <script> document.write(' ...

  6. Dynamics 365中自定义工作流活动获取的上下文分析及注意事项

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复244或者20170306可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  7. arcgis api 3.x for js 入门开发系列八聚合效果(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  8. 【面向对象设计原则】之单一职责原则(SRP)

    单一职责原则是面向对象原则五大原则中最简单,也是最重要的一个原则, 他的字面定义如下: 单一职责原则(Single Responsibility Principle, SRP): 一个类只负责一个功能 ...

  9. geoserver发布瓦片,geoserver发布arcgis切片和geoserver发布金字塔切片

    1 转https://www.jianshu.com/p/cf046ec1efd2,分享使用geoserver发布arcgis切片 2 转 http://www.it610.com/article/1 ...

  10. pycharm设置自动换行的方法

    只对当前文件有效的操作:菜单栏->View -> Active Editor -> Use Soft Wraps: 如果想对所有文件都有效,就要在setting里面进行操作:File ...