jib Official:GoogleContainerTools/jibcss
本文示例完整demo github地址 https://github.com/moxingwang/jibhtml
想要了解而且使用jib,首先你得知道或者使用过docker,在这个基础上才可以明白jib是干什么得,解决了什么问题。java
首先咱们先看一个例子,如何将一个spring-boot项目简单容器化,若是你从未操做过,能够动手本身实现,或者仔细阅读这篇文章第一个 spring Boot 应用经过Docker 来实现构建、运行、发布。你可能发现若是须要把一个java项目容器化这是一个麻烦和相对复杂的过程,首先你须要编写dockerfile,而后在build dockefile,如过须要push到registries,还须要通过push操做。虽然build和push仍是很是简单得。可是写一个dockerfile真的比较麻烦,学习成本也高,看看官网Dockerfile reference就不想学了。那么有没有简单得办法呢,记住几个简单得命令就能够运行了,如同‘mvn spring-boot:run’这么简单得命令,这个时候jib出场了,他就是来完成这个伟大得使命。git
若是你还没明白jib是用来作什么事情得,推荐你阅读谷歌开源Java镜像构建工具Jib的前半部分,或者阅读jib Official:GoogleContainerTools/jib。github
接下来主要介绍具体如何使用(maven的方式)。web
jib的引入很是简单,已maven plugin的方式集成到项目中,只须要在你的项目中引入下面代码便可spring
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>0.9.6</version>
<configuration>
<from>
<!--base image-->
<image>openjdk:alpine</image>
</from>
<to>
<!--<image>registry.cn-hangzhou.aliyuncs.com/m65536/jibtest</image>-->
<!--目标镜像registry地址,为了方便测试,你须要换成本身的地址,若是你的网络很差,能够选用国内加速器,好比阿里云的-->
<image>registry.hub.docker.com/moxingwang/jibtest</image>
</to>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
这只是一个最简单的配置,好比registry认证配置,jvm配置等等,能够参考github jib详细说明jib/jib-maven-plugin/。docker
mvn compile jib:build
可能你刚刚运行玩这一步就出现错误,提示Unauthorized,不用担忧,这个命令须要把构建出来的image commit而且push到你远程的registry(我这里是registry.hub.docker.com),你能够按照【常见错误1】的方法解决问题。浏览器
若是你的网速慢一点可能会在最后步骤’Finalizing…’,不过没有关系,稍微多等一会就ok,直到’BUILD SUCCESS’出现。最终一个完整的java project被实例化成镜像而且push到了registry里。接下来你能够测试刚刚完成push的镜像。markdown
打开https://hub.docker.com/,你会发现你的image已经构建成功。
docker run -it --rm -p8080:8080 registry.hub.docker.com/moxingwang/jibtest
一个spring-boot的image这样就被启动成功了。本文示例demo中集成了swagger-iu, 项目启动成功后咱们能够经过http://localhost:8080/sw/swagger-ui.html访问,能够成功在浏览器打开swagger。
使用这种构建方式,首先你要确保本已经安装docker而且环境变量都配置正确,由于这种方式jib依赖docker 命令执行,你还须要保证已经启动服务(在terminal中执行 docker –version 可以正确返回)。
mvn compile jib:dockerBuild
接下来直接操做,首先查看本地已有images
docker iamges
执行mvn compile jib:dockerBuild
能够看到本地image已经build成功。能够直接启动使用
docker run -it --rm -p8080:8080 moxingwang/jibtest
启动成功后一样能够直接访问http://localhost:8080/sw/swagger-ui.htmlswagger页面。
当你从私有的registries pull或者push的时候须要认证机制。阅读官方说明按照步骤操做便可。Authentication Methods。
若是帮你本机已经按照docker,那么操做更简单,能够经过docker命令直接登录registries,而后继续其余jib的操做。
docker login --username=你的hub.docker的用户名 registry.hub.docker.com
docker login --username=阿里云docker用户名 registry.cn-hangzhou.aliyuncs.com
原文地址:https://blog.csdn.net/mo_xingwang/article/details/81096188