dockerfile-maven-plugin使用指南小结

dockerfile-maven-plugin使用指南小结,第1张

dockerfile-maven-plugin使用指南小结 目录
  • pom配置
  • setting.xml配置
  • 登录情况
    • 需要登录
    • 无需登录
  • maven多模块情况配置
    • jenkins
      • jenkins服务器安装docker
      • 修改jenkins项目配置

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

    pom配置
    
      org.apache.maven.plugins
      maven-deploy-plugin
      
          true
      
         
    
         
         
      com.spotify
      dockerfile-maven-plugin
      1.4.10
      
          
       
       
    
    
    
       
          
      
      
          docker-reg.****.com/feedback/${artifactId}-${profiles.active}
          ${project.version}
          
       target/${project.build.finalName}.jar
          
      
         
    

    setting.xml配置

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

    在pluginGroups中增加一个com.spotify

      
        com.spotify
      
    

    登录情况

    需要登录

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

     
        com.spotify
        dockerfile-maven-plugin
        ${version}
        
     repoUserName
     repoPassword
     ${docker.image.prefix}/${project.artifactId}
     
         target/${project.build.finalName}.jar
     
        
    
    

    无需登录

    但因为我配置了在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中通过命令在执行



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

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

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

    欢迎分享,转载请注明来源:内存溢出

    原文地址: https://outofmemory.cn/zaji/5698233.html

    (0)
    打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
    上一篇 2022-12-17
    下一篇 2022-12-17

    发表评论

    登录后才能评论

    评论列表(0条)

    保存