美文网首页
jib-java容器化工具

jib-java容器化工具

作者: 胡昜 | 来源:发表于2018-09-06 16:57 被阅读159次

Jib是google开源的Java容器化工具

  1. 简单——Jib使用Java开发,并作为Maven或Gradle的一部分运行。你不需要编写Dockerfile或运行Docker守护进程,甚至无需创建包含所有依赖的大JAR包。因为Jib与Java构建过程紧密集成,所以它可以访问到打包应用程序所需的所有信息。在后续的容器构建期间,它将自动选择Java构建过的任何变体。
  2. 快速——Jib利用镜像分层和注册表缓存来实现快速、增量的构建。它读取你的构建配置,将你的应用程序组织到不同的层(依赖项、资源、类)中,并只重新构建和推送发生变更的层。在项目进行快速迭代时,Jib只讲发生变更的层(而不是整个应用程序)推送到注册表来节省宝贵的构建时间。
  3. 可重现——Jib支持根据Maven和Gradle的构建元数据进行声明式的容器镜像构建,因此,只要输入保持不变,就可以通过配置重复创建相同的镜像。
    仓库地址:https://github.com/GoogleContainerTools/jib

1. 配置jib插件

使用如下maven插件替换docker-maven-plugin

 <plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>0.9.10</version>
    <configuration>
        <from>
            <image>openjdk:alpine</image>
        </from>
        <to>
            <image>${registry_url}/hec/${project.artifactId}:${project.version}-${ci_pipeline_id}</image>
            <auth>
                <username>${registry_username}</username>
                <password>${registry_password}</password>
            </auth>
        </to>
        <container>
            <jvmFlags>
                <jvmFlag>-Djava.security.edg=file:/dev/./urandom</jvmFlag>
            </jvmFlags>
        </container>
    </configuration>
</plugin>

插件配置中的用户密码及镜像库地址在ci的环境变量中配置

2.配置ci文件

修改.gitlab-ci.yml的内容如下

image: xxx.com/xxx-tools/cibase:0.5.0
variables:
    MAVEN_OPTS: -Dmaven.repo.local=.m2/repository
    BUILD_CI_NAME: $CI_COMMIT_REF_NAME-$CI_PIPELINE_ID
stages:
- build
- dev-release

cache:
    key: one-key-for-all
    paths:
        - .m2/repository/

build:
    stage: build
    script: "mvn -U clean compile"

dev-release:
    stage: dev-release
    only:
    - tags
    - development-uat
    - /^release-.*$/
    when: manual
    script:
    - "mvn compile jib:build -Dregistry_url=$REGISTRY_URL -Dregistry_username=$REGISTRY_USERNAME -Dregistry_password=$REGISTRY_PASSWORD -Dci_pipeline_id=$BUILD_CI_NAME"

3.启动参数修改

由于jib的打包方式,暂时不支持Docker启动时传入JAVA_OPTS环境变量,可以用JAVA_TOOL_OPTIONS替代,效果一样,docker环境变量配置如下:

JAVA_TOOL_OPTIONS       
-Xmx512m -Denv=dev

相关文章

  • jib-java容器化工具

    Jib是google开源的Java容器化工具 简单——Jib使用Java开发,并作为Maven或Gradle的一部...

  • k8S与容器编排

    一、容器编排工具解决那些问题 1.自动化容器的部署和复制 随时扩展或收缩容器规模 容器分组Group,并且提供容器...

  • 【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏

    摘要:通过把所需建立的工具库做成云容器化应用,用CCE引擎,通过API网关调用云容器引擎中的容器应用。不仅顺应了云...

  • 企业容器管理平台的这些组件,一个都少不了

    客户需要安装一套工具来有效地管理容器化应用程序的生命周期,这些工具构成容器管理平台核心组成部分。这种模式的平台变得...

  • Docker学习(8) 应用的容器化

    Docker学习(8) 应用的容器化 容器化:将应用整合到容器中并且运行起来的过程。 应用的容器化——简介 容器可...

  • 后端大全

    一、工具 1、humio-日志管理工具 2、 Kubernetes:用于自动部署,扩展和管理容器化应用程序的开源系...

  • docker(一)

    1.什么是容器? 2.容器和虚拟化的区别 linux容器技术,容器虚拟化和kvm虚拟化的区别 kvm虚拟化: 需要...

  • Dockerfile应用容器化

    应用容器化 容器是为应用而生!具体来说,容器能够简化应用的构建、部署和运行过程。 容器化步骤 完整的应用容器化过程...

  • Kubernetes(k8s)初始化容器InitContaine

    InitContainer用途: 1、Init 容器可以包含一些安装过程中应用容器中不存在的实用工具或个性化代码;...

  • kubernetes as a service调研

    容器和容器编排工具的使用近些年已经在互联网行业盛行了起来,相比传统的运维架构,容器化的系统架构大大简化了运维工作量...

网友评论

      本文标题:jib-java容器化工具

      本文链接:https://www.haomeiwen.com/subject/igwxgftx.html