IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Maven Docker几个插件打包+推送到镜像仓库或者私服(Harbor)的方法 -> 正文阅读

[系统运维]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>-->
                            <!--                                &lt;!&ndash;设置容器名,可采用通配符&ndash;&gt;-->
                            <!--                                <containerNamePattern>${project.artifactId}</containerNamePattern>-->
                            <!--                                &lt;!&ndash;设置端口映射&ndash;&gt;-->
                            <!--                                <ports>-->
                            <!--                                    <port>8082:8082</port>-->
                            <!--                                </ports>-->
                            <!--                                &lt;!&ndash;设置容器间连接&ndash;&gt;-->
                            <!--                                <links>-->
                            <!--                                    <link>mysql:db</link>-->
                            <!--                                </links>-->
                            <!--                                &lt;!&ndash;设置容器和宿主机目录挂载&ndash;&gt;-->
                            <!--                                <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插件使用 - 简书

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-12 18:00:11  更:2022-03-12 18:02:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 1:34:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码