idea一键打包docker镜像并推送远程harbor仓库的方法(包含spotify和fabric8两种方法)--全网唯一正确,秒杀99%水文

我看了很多关于idea一键打包docker镜像并推送harbor仓库的文章,不论国内国外的,基本上99%都是瞎写的, 这些人不清楚打包插件原理,然后就是复制粘贴一大篇,写了一堆垃圾,然后别人拿来也不能用。

然后这篇文章是经过我无数次测试、踩坑后得出宝贵经验,然后在此分享给各位!

首先谈第一个问题:idea的docker插件不是必须安装的!

我看了那么多傻吊写的文章:在maven插件里面配了一大堆的harbor仓库的认证信息,结果

mvn clean package 以后,发现只能打包docker镜像没有push推送成功!

也就是:你要推送镜像还得使用docker插件, 总共需要两步才能完成docker镜像的打包和推送!

像下面这样:

这他妈叫一键推送吗?!

所以我发誓一定要研究出一套真正意义上的idea一键打包推送docker镜像的方法。

我这里提供com.spotify和io.fabric8两种方法是绝对可以使用的

两种方法都需要开启docker 2375端口.

注意:远程docker和远程harbor仓库是两个概念

因为你打包docker镜像和push推送都需要一个docker程序,而idea需要一个能远程控制docker的机制,这就是开启远程docker 2375端口的原因。

而远程harbor仓库,说白了就是你打包后docker镜像存储的地方,仅此而已。

关于搭建harbor仓库的方法可以参看我的一篇文章: centos搭建docker镜像Harbor仓库的简明方法-CSDN博客

开启开启远程docker 2375端口的方法有两种:

1. 在/etc/docker/daemon.json文件中加入:

"hosts": ["unix:///var/run/docker.sock", "tcp://0.0.0.0:2375"] 然后重启docker

第二种方法:编辑/usr/lib/systemd/system/docker.service文件

在ExecStart=/usr/bin/dockerd 后面增加 -H tcp://0.0.0.0:2375

然后运行命令:

systemctl daemon-reload

systemctl restart docker

首先谈第一种方法: com.spotify出品的dockerfile-maven-plugin插件,

pom.xml核心配置如下:

<properties>
<!-- docker镜像的版本号 -->
<image.tag.verion>v1.0.1</image.tag.verion>
<!-- 远程harbor仓库的域名地址 -->
<docker.repostory>harbor.myhub.com</docker.repostory>
</properties>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>dockerfile-maven-plugin</artifactId>
<version>1.4.13</version>
<executions>
<execution>
<id>default</id>
<!-- maven打包阶段就触发dockerfile-maven-plugin插件的以下动作 -->
<phase>package</phase>
<goals>
<goal>build</goal>
<goal>tag</goal>
<goal>push</goal>
</goals>
<configuration>
<!-- 给docker镜像打上版本号 -->
<tag>${image.tag.verion}</tag>
</configuration>
</execution>

</executions>
<configuration>
<!-- 指定dockerfile所在目录 -->
<contextDirectory>{project.basedir}\ \

相关推荐
骆晨学长几秒前
基于springboot的智慧社区微信小程序
java·数据库·spring boot·后端·微信小程序·小程序
小的~~1 分钟前
k8s使用本地docker私服启动自制的flink集群
docker·flink·kubernetes
AskHarries5 分钟前
利用反射实现动态代理
java·后端·reflect
@月落6 分钟前
alibaba获得店铺的所有商品 API接口
java·大数据·数据库·人工智能·学习
liuyang-neu11 分钟前
力扣 42.接雨水
java·算法·leetcode
z千鑫15 分钟前
【人工智能】如何利用AI轻松将java,c++等代码转换为Python语言?程序员必读
java·c++·人工智能·gpt·agent·ai编程·ai工具
Flying_Fish_roe29 分钟前
Spring Boot-Session管理问题
java·spring boot·后端
诚诚k29 分钟前
docker存储
运维·docker·容器
赚钱给孩子买茅台喝30 分钟前
智能BI项目第四期
java·spring boot·spring cloud·aigc
sorel_ferris32 分钟前
Ubuntu-24.04中Docker-Desktop无法启动
linux·ubuntu·docker