用Jib配置idea的maven项目中,实现springboot、tomcat 来build镜像

2. Jib+Maven+Springboot 实践代码例子

2.1在maven项目中的pom.xml文件中配置Jib插件

  1. <plugin>
  2. <groupId>com.google.cloud.tools</groupId>
  3. <artifactId>jib-maven-plugin</artifactId>
  4. <version>1.0.1</version>
  5. </plugin>

pluginManagement & plugins 如果在idea右边不显示插件jib,注意把pluginManagement注释了,就可以正常显示了

2.2 配置详情

1.这里有一个验证直接使用用户名和密码,来替代credHelper使用。验证成功后可以直接从Docker hub或者网易hub.c.163.com上获取官方镜像(依据个人喜好配置对应的auth)

  1. <!--jib 构建插件-->
  2. <plugin>
  3. <groupId>com.google.cloud.tools</groupId>
  4. <artifactId>jib-maven-plugin</artifactId>
  5. <version>1.0.1</version>
  6. <configuration>
  7. <from>
  8. <image>openjdk:alpine</image>
  9. <!--直接指定凭证(替代credHelper)-->
  10. <auth>
  11. <username>${registry_username}</username>
  12. <password>${registry_password}</password>
  13. </auth>
  14. </from>
  15. <to>
  16. <image>${registry_url}/${project.artifactId}</image>
  17. <tags>
  18. <tag>latest</tag>
  19. </tags>
  20.                 &lt;/to&gt;
  21.                 &lt;container&gt;
  22.                     &lt;mainClass&gt;com.ecdata.CmpApplication&lt;/mainClass&gt;
  23.                     &lt;!--使用当前时间--&gt;
  24.                     &lt;useCurrentTimestamp&gt;true&lt;/useCurrentTimestamp&gt;
  25.                     &lt;!--容器在运行时暴露的端口--&gt;
  26.                     &lt;ports&gt;
  27.                         &lt;port&gt;8088&lt;/port&gt;
  28.                     &lt;/ports&gt;
  29.                 &lt;/container&gt;
  30.                 &lt;!--如果私有镜像仓库没有启用https,设置allowInsecureRegistries参数为true--&gt;
  31.                 &lt;allowInsecureRegistries&gt;false&lt;/allowInsecureRegistries&gt;
  32.             &lt;/configuration&gt;
  33.             &lt;!--绑定jib:build到 Maven生命周期,例如package--&gt;
  34.             &lt;executions&gt;
  35.                 &lt;execution&gt;
  36.                     &lt;phase&gt;package&lt;/phase&gt;
  37.                     &lt;goals&gt;
  38.                         &lt;goal&gt;dockerBuild&lt;/goal&gt;
  39.                     &lt;/goals&gt;
  40.                 &lt;/execution&gt;
  41.             &lt;/executions&gt;
  42.         &lt;/plugin&gt;

已绑定jib:build到 Maven生命周期package,所以直接运行package

2.2 运行效果展示:

  1. [INFO]
  2. [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ cmp ---
  3. [INFO] Using 'UTF-8' encoding to copy filtered resources.
  4. [INFO] skip non existing resourceDirectory /Users/ws/dev/sourceCode/ideaProjects/sw/cmp/src/test/resources
  5. [INFO]
  6. [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ cmp ---
  7. [INFO] Changes detected - recompiling the module!
  8. [INFO] Compiling 13 source files to /Users/ws/dev/sourceCode/ideaProjects/sw/cmp/target/test-classes
  9. [INFO]
  10. [INFO] --- maven-surefire-plugin:2.18.1:test (default-test) @ cmp ---
  11. [INFO] Tests are skipped.
  12. [INFO]
  13. [INFO] --- maven-jar-plugin:2.6:jar (default-jar) @ cmp ---
  14. [INFO] Building jar: /Users/ws/dev/sourceCode/ideaProjects/sw/cmp/target/cmp-0.0.1-SNAPSHOT.jar
  15. [INFO]
  16. [INFO] --- spring-boot-maven-plugin:1.5.4.RELEASE:repackage (default) @ cmp ---
  17. [INFO]
  18. [INFO] --- jib-maven-plugin:1.0.1:dockerBuild (default) @ cmp ---
  19. [WARNING] Setting image creation time to current time; your image may not be reproducible.
  20. [INFO]
  21. [INFO] Containerizing application to Docker daemon as 31.16.14.55/szy/cmp, 31.16.14.55/szy/cmp...
  22. [INFO] Getting base image openjdk:alpine...
  23. [INFO] Building dependencies layer...
  24. [INFO] Building resources layer...
  25. [INFO] Building classes layer...
  26. [INFO] The base image requires auth. Trying again for openjdk:alpine...
  27. [INFO] Retrieving registry credentials for registry.hub.docker.com...
  28. [INFO]
  29. [INFO] Container entrypoint set to [java, -cp, /app/resources:/app/classes:/app/libs/*, com.ecdata.CmpApplication]
  30. [INFO] Loading to Docker daemon...
  31. [INFO]
  32. [INFO] Built image to Docker daemon as 31.16.14.55/szy/cmp, 31.16.14.55/szy/cmp
  33. [INFO]
  34. [INFO] ------------------------------------------------------------------------
  35. [INFO] BUILD SUCCESS
  36. [INFO] ------------------------------------------------------------------------
  37. [INFO] Total time: 30.268 s
  38. [INFO] Finished at: 2019-02-27T09:55:16+08:00
  39. [INFO] ------------------------------------------------------------------------
  40. Process finished with exit code 0

2.3 验证生成好的镜像:

  1. sai:~ ws$ docker images | grep 31.16.14.55/szy/cmp
  2. 31.16.14.55/szy/cmp latest 70440c0ad660 6 minutes ago 213MB
  3. sai:~ ws$

2.4 push镜像到镜像仓库:

  1. sai:~ ws$ docker push31.16.14.55/szy/cmp
  1. </div>

原文地址:https://blog.csdn.net/shenhonglei1234/article/details/87967088

springboot+Jib+Maven+Idea+Docker 实践的更多相关文章

  1. springboot程序构建一个docker镜像(十一)

    准备工作 环境: linux环境或mac,不要用windows jdk 8 maven 3.0 docker 对docker一无所知的看docker教程. 创建一个springboot工程 引入web ...

  2. Spring Boot教程(十一) springboot程序构建一个docker镜像

    准备工作 环境: linux环境或mac,不要用windows jdk 8 maven 3.0 docker 对docker一无所知的看docker教程. 创建一个springboot工程 引入web ...

  3. docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

  4. SpringBoot系列之自定义starter实践教程

    SpringBoot系列之自定义starter实践教程 Springboot是有提供了很多starter的,starter翻译过来可以理解为场景启动器,所谓场景启动器配置了自动配置等等对应业务模块的一 ...

  5. Springboot整合MongoDB的Docker开发,其它应用也类似

    1 前言 Docker是容器开发的事实标准,而Springboot是Java微服务常用框架,二者必然是会走到一起的.本文将讲解如何开发Springboot项目,把它做成Docker镜像,并运行起来. ...

  6. Docker实践,来自沪江、滴滴、蘑菇街架构师的交流分享

    架构师小组交流会:每期选一个时下最热门的技术话题进行实践经验分享. 第一期主题:容器实践.Docker 作为当前最具颠覆性的开源技术之一,其轻量虚拟化.可移植性是CI/CD,DevOps,微服务的重要 ...

  7. 菜鸟——springboot+mybatis+maven

    网上找了很多资料,学习如何搭建springboot,由于刚刚接触springboot,不是很熟练,通过参考网上别人搭建的例子,自己也搭建了一个简单的springboot+mybaits+maven 网 ...

  8. springboot创建maven多模块项目

    SpringBoot创建maven多模块项目 项目结构 该项目名称为springboot-maven-multi,由springboot-maven-multi.user-dao.user-domai ...

  9. (一 、上)搭建简单的SpringBoot + java + maven + mysql + Mybatis+通用Mapper 《附项目源码》

    最近公司一直使用 springBoot 作为后端项目框架, 也负责搭建了几个新项目的后端框架.在使用了一段时间springBoot 后,感觉写代码 比spring 更加简洁了(是非常简洁),整合工具也 ...

随机推荐

  1. Django 的母板及布局(Bootstrap)

    title: Django 的母板及布局(Bootstrap) tags: Django --- Django 的母板及布局(Bootstrap) Django 的母板是作为公共的部分,其他的页面都能 ...

  2. pycharm 使用技巧

    格式化代码为pep8: ctrl+alt+l http://edu.51cto.com//index.php?do=lession&id=163794

  3. 使用HTML5语义标签时要注意的问题

    header,nav,section,article,aside,figue,figcaption,footer以上这些标签(除figcaption标签外)都是块级标签,为了让这些标签及元素在所有的浏 ...

  4. 在Linux下安装redis

    http://www.cnblogs.com/xiaohongxin/p/6854095.html 追加: 通过配置文件启动最好先./redis.cli shutdown ,再到当前目录在./redi ...

  5. 经常用到的js函数

    //获取样式 function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; }else{ retu ...

  6. vs2005无法附加到进程 系统找不到文件

    用管理员身份打开vs2005. 注意配置.

  7. c++ 用指针操作数组

    #include <iostream> using namespace std; const int Max = 5; double * fill_array(double * first ...

  8. CF-1093 (2019/02/10)

    CF-1093 1093A - Dice Rolling 输出x/2即可 #include<bits/stdc++.h> using namespace std; int main() { ...

  9. node 文件下载到本地 (支持中文文件名)

    downloadfile:function(req,res,next){ var name= encodeURI(req.query.name); var path= req.query.url; v ...

  10. python 监控日志

    #需求: #1.每分钟监控服务器日志,ip请求超过200次的,加入黑名单 #1.读文件,获取到每行的内容 open readlines # 178.210.90.90 - - [04/Jun/2017 ...