Maven Docker几个插件打包+推送到镜像仓库或者私服(Harbor)的方法
从镜像仓库的两种维度来看:
第一:开如开启了docker的远程登录端口2375, 可以直接登录到远程的docker, 直接使用远程docker服务器build后,镜像就在远程服务器了
第二:不使用docker的远程登录端口,推送到register/docker hub/ harbor / 阿里云仓库,则需要build镜像后,在push到镜像仓库
插件一:spotify/docker-maven-plugin 插件 (不推荐)
这个插件官方已经不建议使用了,取而代之的是com.spotify:dockerfile-maven-plugin,虽然过时,我也记录一下以防一些老项目要用。
<plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.2.2</version><executions><execution><id>build-image</id><phase>package</phase><goals><goal>build</goal></goals></execution></executions><configuration><!--对应maven的setting.xml 内的server配置信息,主要是用来推送到私人仓库认证使用的--><serverId>harbor</serverId><!-- harbor的地址--><registryUrl>http://${docker.registry}</registryUrl><!-- 镜像名称:${docker.registry} harbor地址 ${docker.registry.name} harbor项目名称 ${project.name} maven项目名称 ${project.version} maven项目版本--><imageName>${docker.registry}/${docker.registry.name}/${project.name}:${project.version}</imageName><!--必须配置dockerHost标签(除非配置系统环境变量DOCKER_HOST)经本人测试,不写也可以,环境变量我也没配置,好像默认会使用127.0.0.1:2375作为docker镜像的打包服务--><!--<dockerHost>http://${local.docker.host}</dockerHost>--><baseImage>java:8</baseImage><entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration></plugin>
插件二:spotify/dockerfile-maven-plugin 插件(推荐)
<!-- 这个插件是docker-maven-plugin 的升级版--><!-- 打包推送命令:mvn clean package dockerfile:push --><plugin><groupId>com.spotify</groupId><artifactId>dockerfile-maven-plugin</artifactId><version>1.4.13</version><executions><!--运行mvn package时,会自动执行build目标,构建Docker镜像;运行mvn deploy命令时,会自动执行push目标,将Docker镜像push到Docker仓库--><execution><id>default</id><goals><goal>build</goal><goal>push</goal></goals></execution></executions><configuration><!--${docker.registry} harbor地址 ${docker.registry.name} harbor项目名称 ${project.name} maven项目名称 --><repository>${docker.registry}/${docker.registry.name}/${project.name}</repository><!-- maven项目版本--><tag>${project.version}</tag><!--在settings.xml中配置server--><useMavenSettingsForAuth>true</useMavenSettingsForAuth><!--可以指定一个或多个变量,传递给Dockerfile,在Dockerfile中通过ARG指令进行引用--><buildArgs><JAR_FILE>${project.build.finalName}.jar</JAR_FILE></buildArgs></configuration></plugin>
插件三:/fabric8io/docker-maven-plugin 插件 (墙裂推荐)
<!--功能强大的查插件 推荐使用--><!--打包推送命令 mvn clean package docker:push--><plugin><groupId>io.fabric8</groupId><artifactId>docker-maven-plugin</artifactId><version>0.39.1</version><configuration><!--认证配置,用于私有registry认证--><authConfig><username>admin</username><password>xxxxx</password></authConfig><!-- harbor镜像仓库地址--><pushRegistry>http://${docker.registry}</pushRegistry><images><image><!--推送到私有镜像仓库,镜像名需要添加仓库地址--><name>${docker.registry}/test/${project.name}:${project.version}</name><!--定义镜像构建行为--><build><dockerFileDir>${project.basedir}</dockerFileDir></build><!--定义容器启动行为--><!-- <run>--><!-- <!–设置容器名,可采用通配符–>--><!-- <containerNamePattern>${project.artifactId}</containerNamePattern>--><!-- <!–设置端口映射–>--><!-- <ports>--><!-- <port>8082:8082</port>--><!-- </ports>--><!-- <!–设置容器间连接–>--><!-- <links>--><!-- <link>mysql:db</link>--><!-- </links>--><!-- <!–设置容器和宿主机目录挂载–>--><!-- <volumes>--><!-- <bind>--><!-- <volume>/etc/localtime:/etc/localtime</volume>--><!-- </bind>--><!-- </volumes>--><!-- </run>--></image></images></configuration><executions><!--如果想在项目打包时构建镜像添加--><execution><id>default</id><goals><goal>build</goal><goal>push</goal></goals></execution></executions></plugin>
参考文章:三种自动化构建Docker镜像的Maven插件使用 - 简书
Maven Docker几个插件打包+推送到镜像仓库或者私服(Harbor)的方法相关推荐
- docker-jenkins将打包的镜像推送到镜像仓库
1.准备好环境和远程镜像仓库 2.编写shell脚本 #!/bin/bash -il #操作/项目路径(Dockerfile存放的路劲) BASE_PATH=/var/jenkins_home/wor ...
- 使用Docker制作镜像并推送到镜像仓库
本文会告诉你如何使用docker从远端下载一个镜像,然后对镜像做修改,最后再把镜像推送到你自己的镜像仓库 1.安装Docker 这个没啥说的,根据你自己的环境下载对应的安装包安装就是了 docker官 ...
- 在内网中使用maven_maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)-Go语言中文社区...
在上一章<maven构建docker镜像三部曲之二:编码和构建镜像>的实战中,我们将spring boot的web工程构建成docker镜像并在本地启动容器成功,今天我们把docker-m ...
- docker查看现有容器_如何使用Docker将现有应用程序推送到容器中
docker查看现有容器 by Daniel Newton 丹尼尔·牛顿 如何使用Docker将现有应用程序推送到容器中 (How to shove an existing application i ...
- maven自定义依赖并推送到远程仓库
文章目录 前言 一.maven配置 二.项目准备及修改配置 三.推送到maven仓库 总结 前言 本教程是在 IDEA 开发工具下操作的 一.maven配置 我们目的是将自己编写的项目,通过 mave ...
- springboot学习(六十七) springboot项目通过gradle-docker-plugin插件构建为doker镜像并推送至镜像私服
文章目录 前言 1.使用gradle部署springboot项目 2.Docker开启远程访问 3.安装镜像私服Harbor 4.gradle中配置插件 前言 springboot从2.4默认提供了打 ...
- 【Visual Studio 2019】上传代码到 GitHub ( 16.9.2 版本 | 安装 GitHub 扩展插件 | 创建 Git 仓库 | 推送到远程仓库 )
文章目录 一.安装 GitHub 扩展插件 二.创建 Git 仓库 三.推送到远程仓库 今天将 Visual Studio 2019 从 16.3.6 版本升级到了 16.9.2 版本 , 发现相关操 ...
- docker 推送到本地仓库_Docker_学习笔记系列之仓库
docker仓库分公有和私有之分,本文主要介绍如何搭建私有仓库 1. 简介 Docker仓库,类似于yum仓库,是用来保存镜像的仓库.为了方便的管理和使用docker镜像,可以将镜像集中保存至Dock ...
- Docker 使用 docker push 命令 推送本地镜像到远程DockerHub仓库服务器
Docker 使用 docker push 命令 ----- 推送本地镜像到远程DockerHub仓库服务器 Docker hub注册用户 到官网注册账号:https://hub.docker.com ...
最新文章
- 【剑指offer-Java版】41和为s的两个数字VS和为s的连续正数序列
- jQuery简单的Ajax调用示例
- python压缩文件不带根路径_python 压缩文件(解决压缩路径问题)
- Python学习之==第三方模块的安装、模块导入
- 以太坊白皮书_以太坊发展历程
- Java基础入门笔记-Hello world
- 【NOIP2001】【Luogu1025】数的划分(可行性剪枝,上下界剪枝)
- fatal error C1010: 在查找预编译头时遇到意外的文件结尾
- 非零基础入门微信小程序
- Atitit 前后端交互模式 目录 1.1. Ajax	1 1.2. Fetch api	1 1.3. 服务端脚本模式(简单快速)	1 1.4. 浏览器注入对象、函数	1 1.5. 浏览器插件模式
- for linux pdf转mobi_pdftotext —— Linux/Unix中将PDF文件转化为Text文本格式的利器
- CI获取用户真实IP地址
- Mahalanobis距离(马氏距离)的“哲学”解释
- PMP讲义第二章 项目运行环境
- python中采用字典建立统_Python字典的基本使用
- 线性代数_矩阵零空间的维度与奇异值的关系
- vb播放声音程序代码
- 深入浅出TCP/IP协议栈
- 智慧大棚一小步,农业发展一大步
- 抓取小红书 模拟器提示版本低 对接anoyi接口的api