顾名思义,docker-maven-plugin是一个docker的maven插件,用来执行docker镜像的制作和上传,他的地址是https://github.com/spotify/docker-maven-plugin,里面有详细的说明
有两种方式
1、使用Dockerfile
2、不使用Dockerfile,直接在pom中定义
第二种方式有一些局限性,有一些Dockerfile的指令是不支持的。
介绍两种方式之前,需要先修改maven的setting文件,如果要上传镜像到私服,就必须要修改此文件。
<servers> <server> <id>harbor</id> <username>admin</username> <password>Harbor12345</password> <configuration> <email>*******</email> </configuration> </server> </servers>
在pom文件中增加两个属性
<properties> <docker.registry>10.10.20.202/library</docker.registry> <tag>v7</tag> </properties>
docker.registry用来定义docker私服的前缀
tag用来定义标签
以下分别介绍这两种方式,
【第一种:使用Dockerfile】
1、在java工程根目录下创建Dockerfile,文件内容如下。
FROM 10.10.20.202/library/tomcat8:v1 ADD target/portal-0.0.1-SNAPSHOT /root/apache-tomcat-8.0.18/webapps/portal ENTRYPOINT /root/apache-tomcat-8.0.18/bin/catalina.sh run WORKDIR /root/apache-tomcat-8.0.18/webapps
2、在pom文件中,增加插件
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.11</version> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> <configuration> <dockerDirectory>${project.basedir}</dockerDirectory> <imageName>${docker.registry}/${project.artifactId}:${tag}</imageName> </configuration> </execution> <execution> <id>push-image</id> <phase>deploy</phase> <goals> <goal>push</goal> </goals> <configuration> <serverId>harbor</serverId> <imageName>${docker.registry}/${project.artifactId}:${tag}</imageName> </configuration> </execution> </executions> </plugin>
上述插件将创建镜像、打标签与package绑定,将上传镜像与deploy绑定,其中dockerDirectory定义了Dockerfile所在的路径,当使用dockerDirectory这个标签时,诸如baseImage、entryPoint等标签就不在生效了。
【第二种:不使用Dockerfile】
1、在pom文件中增加插件
<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.11</version> <executions> <execution> <id>build-image</id> <phase>package</phase> <goals> <goal>build</goal> </goals> <configuration> <baseImage>10.10.20.202/library/tomcat8:v1</baseImage> <resources> <resource> <targetPath>/root/apache-tomcat-8.0.18/webapps/emp-portal</targetPath> <directory>${project.build.directory}/${project.build.finalName}</directory> </resource> </resources> <imageName>${docker.registry}/${project.artifactId}:${tag}</imageName> <entryPoint>["/root/apache-tomcat-8.0.18/bin/catalina.sh", "run"]</entryPoint> </configuration> </execution> <execution> <id>push-image</id> <phase>deploy</phase> <goals> <goal>push</goal> </goals> <configuration> <serverId>harbor</serverId> <imageName>${docker.registry}/${project.artifactId}:${tag}</imageName> </configuration> </execution> </executions> </plugin>
与第一种方式不同的地方,在于创建镜像的定义中,增加了一些标签
baseImage:生命基础镜像,相当于Dockerfile中的FROM
recerouse:说明将哪个目录拷贝到镜像的哪个路径下
entrypoint:说明镜像启动后执行什么指令
http://www.cnblogs.com/puroc/p/5799228.html
相关推荐
java运行依赖jar包
(spotify Java)docker-maven-plugin-master.zip
dockerfile-maven-plugin 支持 maven 直接发布项目至 docker 镜像库
docker-maven-plugin 这是一个Maven插件,用于构建Docker映像和管理用于集成测试的容器。 它适用于Maven 3.0.5和Docker 1.6.0或更高版本。 目标 目标 描述 默认生命周期阶段 创建并启动容器 整合前测试 停止并...
docker-maven-plugin 一个用于构建和推送Docker映像的Maven插件。状态:无效我们建议您改为使用 。docker-maven-plugin的未来该插件是Spotify最初使用的Maven插件,用于从Java服务中构建Docker映像。 它最初创建于...
Docker Compose Maven插件 ... < artifactId>docker-compose-maven-plugin $VERSION 关于 Maven插件,用于通过Maven运行基本的docker-compose命令。 它可以用作Maven生命周期的一部分,也可以用作将do
Maven是一个项目管理和构建自动化工具,主要服务于基于Java的软件项目。它是由Apache软件基金会提供的一个开源工具,使用一种名为Project Object Model (POM) 的XML文件来描述项目的构建过程、依赖关系和其他配置...
免责声明:资料部分来源于合法的互联网渠道收集和整理,部分自己学习积累成果,供大家学习参考与交流。收取的费用仅用于收集和整理资料耗费时间的酬劳。 本人尊重原创作者或出版方,资料版权归原作者或出版方所有,...
我们倾向于谈论“ Maven”而不是“ Docker”(例如,“ package”而不是“ build”)。 而且,我们希望保持简单。 您想知道如何吗? 吗? 要哪些? 要知道什么? 使用其他工具? 我有一个和一个(即将推出SBT ...
maven projects plugin出现红线怎么办,网上给许多比较蹩脚的方案。经过研究发现一个简洁的方法,一分钟就能搞定。
docker maven plugin 是个简单的可以管理Docker容器maven插件,这个插件将会根据你的配置,在构建时启动容器,构建结束时停止容器并删除,如果本地找不到镜像,Docker会自动去中央仓库下载。 简单示例: <plugin> ...
fabric8-maven-plugin, 关于Kubernetes和 OpenShift,用于获取你的Java应用程序的Maven 插件 fabric8-maven-plugin 简介这个 Maven 插件是用于构建和部署 Docker 。Kubernetes和OpenShift的Java应用程序的one-stop-...
maven-docker-images 带有必要插件的Maven映像可缩短构建时间
Dockerbuild Maven 插件使用 docker 容器构建 java 项目的 Maven 插件
5.1 插件docker-maven-plugin 18 5.2 插件dockerfile-maven 19 6. 容器编排与调度 20 6.1 容器编排 20 6.2 容器调度 21 7. Docker常用命令 21 8. 常见问题 22 8.1 连不上docker官方仓库 22 8.2 启动mysql...
dockerfile-maven-plugin.txt
构建Docker映像 mvn package 运行Docker映像 docker run -d -p 8090:8090 janus/janus-web:latest 将环境变量DOCKER_HOST = tcp:// hostname:2375设置为针对远程Docker主机运行。 否则,将使用localhost
- Maven Integration plugin:与 Maven 集成,用于构建基于 Maven 的项目。 - Deploy to container Plugin:支持自动化部署到 Tomcat 容器。 - Git 插件:集成 Git 版本控制系统。 - Publish Over SSH:通过 SSH...