返回顶部
首页 > 资讯 > 服务器 >dockerfile-maven-plugin使用指南小结
  • 270
分享到

dockerfile-maven-plugin使用指南小结

2024-04-02 19:04:59 270人浏览 八月长安
摘要

目录pom配置setting.xml配置登录情况需要登录无需登录Maven多模块情况配置jenkinsjenkins服务器安装Docker修改jenkins项目配置最近在将应用部署到

最近在将应用部署到容器平台,需要在打包时生成docker镜像,在网上首先搜到了docker-maven-plugin这个插件,但使用起来很麻烦,在maven和dockfile都要做很多额外的配置。后来在官方GitHub看到作者推荐使用dockerfile-maven-plugin这个新的插件,于是替换成这个,但这个插件在网上的相关资料较少。在此记录一哈

pom配置


<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-deploy-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

            <!-- Dockerfile maven plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>dockerfile-maven-plugin</artifactId>
                <version>1.4.10</version>
                <executions>
                    <!--<execution>-->
                        <!--<id>default</id>-->
                        <!--<Goals>-->
                            <!--&lt;!&ndash;如果package时不想用docker打包,就注释掉这个goal&ndash;&gt;-->
                            <!--<goal>build</goal>-->
                            <!--<goal>push</goal>-->
                        <!--</goals>-->
                    <!--</execution>-->
                </executions>
                <configuration>
                    <repository>docker-reg.****.com/feedback/${artifactId}-${profiles.active}</repository>
                    <tag>${project.version}</tag>
                    <buildArgs>
                        <jar_FILE>target/${project.build.finalName}.jar</JAR_FILE>
                    </buildArgs>
                </configuration>
            </plugin>

setting.xml配置

这个文件在maven目录下,可以 cd $M2_HOME/conf 进入。

在pluginGroups中增加一个com.spotify


  <pluginGroups>
    <pluginGroup>com.spotify</pluginGroup>
  </pluginGroups>

登录情况

需要登录

关于如何验证登录,坑比较多。如果你在habor设置你的仓库为私有,那必须要登录,按照官方配置就可以,如下。


 <plugin>
    <groupId>com.spotify</groupId>
    <artifactId>dockerfile-maven-plugin</artifactId>
    <version>${version}</version>
    <configuration>
        <username>repoUserName</username>
        <passWord>repoPassword</password>
        <repository>${docker.image.prefix}/${project.artifactId}</repository>
        <buildArgs>
            <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
        </buildArgs>
    </configuration>
</plugin>

无需登录

但因为我配置了在k8s自动从habor获取镜像,所以设置了公开,这种情况下无需登录,但有时也会执行失败,此时你需要删掉~/.docker/config.JSON中的这个网站的配置。


cat ~/.docker/config.json

{
    "auths": {
        "192.168.87.110:5000": {
            "auth": "YWRtaW46JKDtaW4xMjM="
        }(删掉此处)
    },
    "HttpHeaders": {
        "User-Agent": "Docker-Client/18.09.0 (linux)"
    }
}

确认这里为空后,如果还报错,可以再执行一次docker login … ,这样就成功了

maven多模块情况配置

在多模块的情况下,打包插件一定要放置在Application子模块中,如果放在root pom中会导致打包不成功。

如下情况:

  • -app
  • ​ -common
  • ​ -file
  • ​ -mail
  • ​ -application
  • ​ -pom.xml

这种情况,我们可以分两个步骤

第一步先打包全部模块,在根目录下


mvn clean package -P test

第二步在要打包镜像的子模块中执行deploy命令


mvn dockerfile:build dockerfile:push

这样,就能成功将子模块打包为镜像并push。

jenkins

在本地测试完之后,要将这个流程弄到jenkins,做一些配置。

jenkins服务器安装docker

此处不再赘述,maven的setting.xml等配置和本地一样。

修改jenkins项目配置

此时,由于项目需要打包两次(一次在根目录打包,第二次在子目录打包为镜像),所以需要执行两次mvn命令,和之前不一样,所以将第一次的执行还是使用jenkins的Build模块。

在这里插入图片描述

第二次的执行放置在post steps中通过命令在执行

Mkb3FJ.md.png


cd 子模块目录
mvn clean package -P $env dockerfile:build dockerfile:push

这样,就可以完成打包并制作镜像的步骤了

到此这篇关于dockerfile-maven-plugin使用指南小结的文章就介绍到这了,更多相关dockerfile-maven-plugin使用 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: dockerfile-maven-plugin使用指南小结

本文链接: https://lsjlt.com/news/137010.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • dockerfile-maven-plugin使用指南小结
    目录pom配置setting.xml配置登录情况需要登录无需登录maven多模块情况配置jenkinsjenkins服务器安装docker修改jenkins项目配置最近在将应用部署到...
    99+
    2024-04-02
  • Maven插件docker-maven-plugin的使用
    目录1、docker-maven-plugin 介绍2、环境、软件准备3、Demo 示例3.1 配置 DOCKER_HOST3.2 示例构建镜像3.3 执行命令3.4 绑定Docke...
    99+
    2024-04-02
  • Dockerfile Maven 插件的使用方法
    本篇内容介绍了“Dockerfile Maven 插件的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Dockerfile Mave...
    99+
    2023-06-19
  • 详细docker-maven-plugin使用方法
    目录Docker-Maven-PluginMaven插件自动部署步骤1、修改宿主机的docker配置,开放2375端口,让其可以远程访问2、刷新配置,重启服务3、配置容器防火墙&nb...
    99+
    2024-04-02
  • maven-resources-plugin插件怎么使用
    这篇文章主要介绍了maven-resources-plugin插件怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇maven-resources-plugin插件怎么使用文章都会有所收获,下面我们一起来看...
    99+
    2023-06-26
  • ​maven-war-plugin插件怎么使用
    这篇文章主要讲解了“maven-war-plugin插件怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“maven-war-plugin插件怎么使用”吧!maven-war-plugi...
    99+
    2023-06-26
  • ​maven-assembly-plugin插件怎么使用
    这篇“maven-assembly-plugin插件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“maven-ass...
    99+
    2023-06-26
  • maven-jar-plugin插件怎么使用
    这篇“maven-jar-plugin插件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“maven-jar-plug...
    99+
    2023-06-26
  • properties-maven-plugin插件怎么使用
    这篇“properties-maven-plugin插件怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“propert...
    99+
    2023-06-26
  • ​maven-shade-plugin插件怎么使用
    这篇文章主要介绍“maven-shade-plugin插件怎么使用”,在日常操作中,相信很多人在maven-shade-plugin插件怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”maven-sha...
    99+
    2023-06-26
  • ​versions-maven-plugin插件怎么使用
    这篇文章主要介绍了versions-maven-plugin插件怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇versions-maven-plugin插件怎么使用文章都会有所收获,下面我们一起来看看吧...
    99+
    2023-06-26
  • Docker部署项目完全使用指南(小结)
    目录环境准备Docker安装启动Java环境安装Docker远程访问配置Docker重启IDEA配置Docker项目配置配置Dockerfile文件Docker配置Maven打包生成...
    99+
    2024-04-02
  • Maven Plugin的@Mojo和@Execute的具体使用
    本文以spring-boot-maven-plugin 2.5.4为例 @Mojo defaultPhase 以spring-boot-maven-plugin:start为例,...
    99+
    2024-04-02
  • Postman使用指南及小技巧
    目录一、什么是 Postman(前世今生)二、使用变量2.1 变量作用域适用于 Postman 中不同的场景2.2 编辑全局和环境变量2.3 编辑集合变量2.4 使用系统内置动态变量...
    99+
    2024-04-02
  • Dockerfile的CMD指令怎么使用
    这篇文章主要介绍“Dockerfile的CMD指令怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Dockerfile的CMD指令怎么使用”文章能帮助大家解决问题。一 Docker的CMD指令...
    99+
    2023-07-05
  • java 中使用maven shade plugin 打可执行Jar包
    java 中使用maven shade plugin 打可执行Jar包eclipse里有一个功能叫做“打可执行(runnable) jar包”, 用这个功能可以把一个工程自身和所有依赖包打成一个fat jar,并且指定Main方法,这样直接...
    99+
    2023-05-31
    java maven jar包
  • 【SpringBoot】Maven 版本管理与 flatten-maven-plugin 插件的使用及分析
    1. flatten-maven-plugin 介绍 1.1 环境 IntelliJ IDEA 2021.3JDK 1.8.0_301Apache Maven 3.8.1org.codehaus.mo...
    99+
    2023-09-05
    spring boot maven java
  • Nginx的gzip指令使用小结
    目录简介说一段废话背景指令介绍gzipgzip_static易错点提示简介 GZIP顾名思义,就是将文件压缩传输。图片、视频、大文件不建议使用压缩,压缩需要占用你的服务器资源,压缩完...
    99+
    2024-04-02
  • 使用maven-assembly-plugin如何打包多模块项目
    目录maven-assembly-plugin打包多模块项目概述1. 需求2. 打包流程使用maven-assembly-plugin插件来定制化打包使用内置的Assembly De...
    99+
    2024-04-02
  • 使用Maven中的scope总结
    目录Maven中的scope总结Maven中的scope主要有以下6种Maven中<scope>参数</scope>配置解决maven项目中无法打包生成空文件夹的问题Maven中的s...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作