试水Jib

之前一直沉迷于vagrant之中,其对于环境部署的友好,谁用谁知道,但是在最近的开发过程当中,越发的发现vagrant对开发人员的友好,而对于后续的发布、运维等就有些力不从心了,所以最近又开始拾起docker,尝试一下容器化的便利。 恰在此时,Jib适时的走进了我的视野。

Jib 是谷歌最新开源的 Java 应用的 Docker 镜像生成工具,可以通过 Gradle或Maven 直接生成镜像并上传到仓库无需 Dockerfile 文件或其他插件;Jib 支持将资源文件和类分层打包,可以大幅度提升生成镜像的速度

在正常的docker使用流程里,我们要做的是这样的:

而使用的Jib以后,是这样的:

这何止是对初学者友好啊,简直是对初学者友好! 有了这么好的工具不试试太对不起郭嘉了,于是走起....

参看了网上大部分都maven的案例,而作为一个gradle的拥趸,我不服!

首先在 build.gradle 添加插件:

buildscript {
    repositories {
    
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
         classpath "gradle.plugin.com.google.cloud.tools:jib-gradle-plugin:0.9.10"
    }
}

然后应用插件:

apply plugin: "com.google.cloud.tools.jib"

接下来是一些配置

jib {
    from {
        //获取镜像    
        image = 'registry.hub.docker.com/openjdk:8-jdk-alpine'

    }
    to {
        //发布的镜像地址
        image = 'registry.cn-hangzhou.aliyuncs.com/dafei1288/growingstrong:test1'
        auth {
                  username = '111111'
            password = '111111'
        }

    }
//  其他的一些配置
//    container {
//        jvmFlags = ['-Djava.security.egd=file:/dev/./urandom', '-Duser.timezone=GMT+08']
//        mainClass = 'example.jib.MainClass'
//        args = ['test]
//                ports = ['8080']
//    }
}

值得注意的是,发布镜像的地方,需要选一个自己喜欢的,这里我用了阿里云的,但是不得不吐槽阿里云得菜单,真的很难用,作为职业码农,完全不知道他们是怎么设计的。这个东西怎么构建自己的镜像仓库,网上文章众多,我就不赘述了。

更新一下gradle,然后你就会发现

这个时候你就可以放飞自我的撰写你心目中的bug了..... 然后轻轻双击jib

大功告成,就是这么畅快. 查看一下,拉下来没有任何问题。

最后说一下,在构建的时候可能会出现一些莫名其妙的问题,这是因为docker hub 和 gcr.io这些网站技术不成熟。

本文分享自微信公众号 - 麒思妙想(qicai1612),作者:dafei1288

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 零基础学Flink:实时热销榜Top5(案例)

    如前文所预告的一样,今天我们来分析一下,如何通过flink完成实时热销榜单Top5的计算,本文案例,需要使用前文一些内容,如果不了解的同学,请移步《零基础学Fl...

    麒思妙想
  • Know Kubernetes — Pictorially

    Recently, I started my Kubernetes journey and wanted to understand its internals...

    麒思妙想
  • 我也能写数据库 —— Streaming(下)

    在上一篇文章中介绍了,如何在select语句中使用stream关键字,进行流查询,并且模拟了简单数据结构,有兴趣的同学可以移步去看看( streaming上篇)...

    麒思妙想
  • eShopOnWeb 知多少

    eShopOnWeb是基于ASP.NET Core构建,官方创建这样一个示例项目的目的,我想无非以下几点:

    圣杰
  • 聊聊NacosNamingService的getServicesOfServer

    本文主要研究一下NacosNamingService的getServicesOfServer

    codecraft
  • 聊聊NacosNamingService的getServicesOfServer

    本文主要研究一下NacosNamingService的getServicesOfServer

    codecraft
  • Spring Cloud 微服务(三) :项目简介

    本项目源码放在 Github 上,可以检出后查看;如果想在本地运行,需要检出与本项目配套的 远程仓库。

    安宁
  • flutter 生成圆形/圆角图片【ClipRRect组件等】

    使用的DecorationImage,相当于把图片当做一个背景,这里需要注意的就是Container的child的尺寸问题,就算不放内容,也需要设置一个带尺寸的...

    sinnoo
  • MongoDB实现问卷/考试设计

    MongoDB是一个面向文档存储的数据库。在MongoDB中,一条记录叫做document(文档),由类似于JSON结构的键值对组成。

    我的小熊不见了丶
  • CTF小技巧:文本解密工具 Text Decoder Toolkit

    欢迎来到文本解码挑战赛! T{4 G=C 9<=E B63 3<3;G /<2 9<=E G=C@A3:4^ G=C <332 <=B 43/@ B63 @3A...

    FB客服

扫码关注云+社区

领取腾讯云代金券