验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

怎么使用Maven打包构建Docker镜像并推送到仓库

阅读:1207 来源:乙速云 作者:代码code

怎么使用Maven打包构建Docker镜像并推送到仓库

      一,服务器Docker配置

      修改daemon.json文件,开放端口2375

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

      我的文件如下所示:

      {
            "insecure-registries":["10.xx.xx.xx:5000"],
          "hosts": ["tcp://0.0.0.0:2375", "unix:///var/run/docker.sock"]
      }
      {
      "graph":"/Data/docker"
      }

      二,本地项目maven配置

      2.1 pom.xml

      在项目的pom文件引入docker-maven-plugin插件

      
                      
                      com.spotify
                      docker-maven-plugin
                      1.2.2
                      
                          
                          
                              build
                              install
                              
                                  build
                                  
                              
                          
                      
                      
                          
                          http://10.xx.xx.xx:2375
      
                          
                          10.xx.xx.xx:5000/${project.artifactId}:${docker.tag}
      
                          
                          ${project.basedir}/src/main/docker
      
                          
                          
                              
                                  /
                                  ${project.build.directory}
                                  ${project.build.finalName}.jar
                              
                          
      
                          
      
                          
                          
                          
                          3
                          2000
                          10.xx.xx.xx:5000
                          
                          ${docker.push}
                          
                      
                  

      重要配置解释:

      • dockerHost:docker所在服务器的ip和开放的端口

      • imageName:最终构建的镜像名称

      • dockerDirectory:本地dockerfile文件存放路径

      • targetPath:本地jar包生成位置

      • registryUrl:服务器docker的仓库地址

      • pushImage:是否在构建镜像后同时推送到Docker仓库

      2.2 dockerfile

      在本地项目的src/main下创建docker目录,在docker目录下创建dockerfile文件

      FROM 10.xx.xx.xx:5000/java
      VOLUME /tmp
      ENV LANG C.UTF-8
      COPY *.jar app.jar
      RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
      RUN echo "Asia/Shanghai" > /etc/timezone 
      ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom", "-Djava.util.Arrays.useLegacyMergeSort=true", "-jar","app.jar"]

      2.3 验证

      此时,对该项目进行mvn install时,相当于会同时进行docker:build的动作,将本地项目jar包构建成镜像到服务器中

      2.4 统一dockerfile

      如果每个服务的镜像构建没有差异,可以将dockerfile从子项目中抽出来,就不需要在每一个项目模块中都创建相同的文件,直接放在项目根路径下就可以进行通用,同时修改pom配置

      
      ${project.parent.basedir}/docker

      此时的dockerfile存储位置为项目父级目录的docker文件夹下。

    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>