使用jib插件为Java应用构建镜像的方法

目录
  • 简介
  • 使用Maven插件将Java应用构建为docker镜像

简介

Java应用开发的容器化,需要制作docker镜像。要是用户本地没安装docker,可以使用jib制作出带有镜像的tar文件。

Jib提供了四种使用方式:

jib构建工具主要包含了四个强大的功能。

  • build :提供了创建镜像并推送到远程仓库功能。
  • buildTar :提供创建一个包含镜像的tar文件功能。
  • dockerBuild:提供创建docker镜像到本地功能。
  • exportDocker:rContext提供创建dockerfile功能。

当编译构建是在没有docker环境的情况下构建,使用build命令和dockerBuild命令并不能制作出镜像,只能使用buildTar命令制作出一个包含镜像的tar文件。

使用Maven插件将Java应用构建为docker镜像

想了解更多参数,阅读官方文档。https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin

1.修改需要制作镜像的项目代码:找到pom文件声明jib插件,
pom.xml文件中声明Jib插件:

<!--使用jib插件-->
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>1.3.0</version>
                <configuration>
                    <!--from节点用来设置镜像的基础镜像,相当于Docerkfile中的FROM关键字-->
                    <from>
                        <!--使用openjdk官方镜像,tag是8-jdk-stretch,表示镜像的操作系统是debian9,装好了jdk8-->
                        <image>openjdk:8-jdk-stretch</image>
                    </from>
                    <to>
                        <!--镜像名称和tag,使用了mvn内置变量${project.version},表示当前工程的version-->
                        <image>lendea/hellojib:${project.version}</image>
                    </to>
                    <!--容器相关的属性-->
                    <container>
                        <!--jvm内存参数-->
                        <jvmFlags>
                            <jvmFlag>-Xms256m</jvmFlag>
                            <jvmFlag>-Xmx256m</jvmFlag>
                        </jvmFlags>
                        <!--要暴露的端口-->
                        <ports>
                            <port>8081</port>
                        </ports>
                    </container>
                </configuration>
            </plugin>
  • from标签:设置基础镜像,相当于dockerfile中的FROM关键字,这里推荐使用SWR中的镜像,构建时下载速度快并且稳定。
  • to标签:设置制作出来的镜像的镜像名称和tag。
  • container标签:设置容器的相关属性,jvm内存参数,端口等。

2.创建构建任务并执行

# -Dmaven.test.skip=true: 跳过单元测试
# -U: 每次构建检查以来更新,可避免缓存中快照版本依赖不更新问题,但会牺牲部分性能
# -e -X: 打印调试信息,定位疑难构建问题时建议使用此参数构建
# -B: 以batch模式运行,可避免日志打印出现ArrayIndexOutOfBoundsException异常

mvn compile jib:buildTar -Dmaven.test.skip=true -U -e -X -B

在java项目的target目录下,可以看到生成的tar镜像。

3.使用tar镜像
执行docker load -i xxx.tar 命令将tar文件的镜像加载到本地镜像仓库,再使用docker run --rm -p 8081:8081 lendea/hellojib:0.0.1等命令启动容器来测试功能。

到此这篇关于使用jib插件为Java应用构建镜像的文章就介绍到这了,更多相关jib插件构建镜像内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 使用jib打包docker镜像实战

    序 本文主要研究一下如何使用google的jib打包docker镜像 Jib 是谷歌最新开源的 Java 应用的 Docker 镜像生成工具,可以通过 Gradle 或 Maven 直接生成镜像并上传到仓库而不需要 Dockerfile 文件或者其他插件:Jib 支持将资源文件和类分层打包,可以大幅度提升生成镜像的速度 有一些其他的插件也可以通过 Docker 实现生成镜像,如com.palantir.docker等,但是都需要额外配置 Dockerfile, 如果应用仅需要通过 Dockerf

  • 使用GoogleContainerTools容器化jib构建docker镜像

    目录 前言碎语 插件配置 配置详解 插件命令使用 集成插件生命周期 文末结语 前言碎语 今天分享一个在容器化过程中非常重要的一个工具,java应用docker镜像build工具jib,这个工具是谷歌团队研发开源的,特点是不依赖docker守护进程,直白点说就是本地环境不安装docker环境也可以打包docker镜像.不用依赖维护Dockerfile,而且基于java打包插件可以轻松嵌入到java本身的构建生命周期中(本文使用maven).可以说是java容器化构建利器. 插件配置 <plugin

  • 使用jib插件为Java应用构建镜像的方法

    目录 简介 使用Maven插件将Java应用构建为docker镜像 简介 Java应用开发的容器化,需要制作docker镜像.要是用户本地没安装docker,可以使用jib制作出带有镜像的tar文件. Jib提供了四种使用方式: Maven插件:jib-maven-plugin Gradle插件:jib-gradle-plugin Java库: Jlib Core Jib CLI jib构建工具主要包含了四个强大的功能. build :提供了创建镜像并推送到远程仓库功能. buildTar :提

  • Docker使用 Maven 插件构建镜像的方法

    通过 Maven 的 Docker 插件可以构建 Docker 镜像 快速入门 在 pom.xml 中添加 Docker 插件 <plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>0.4.13</version> <configuration> <imageName>

  • docker使用Dockerfile构建镜像的方法

    构建镜像 前面我们使用各种镜像进行测试演示,很多情况下我们是需要自己的镜像,满足自己业务需要的镜像,这就需要我们能够定制自己需要的镜像,构建 Docker 镜像有以下两种方法. 使用 docker commit 命令. 使用 docker build 命令和 Dockerfile 构建文件. 现在我们不推荐使用 docker commit 命令,而应该使用更灵活.更强大的 Dockerfile 来构建 Docker 镜像. 1.使用 commit 命令构建 docker commit 命令是创建

  • 使用dockerfile构建nginx镜像的方法示例

    Dockerfile介绍 Docker通过读取Dockerfile里面的内容可以自动build image,Dockerfile是一个包含了build过程中需要执行的所有命令的文本文件.也可以理解为Dockfile是一种被Docker程序解释的脚本,由一条一条的指令组成,每条指令对应Linux系统下面的一条命令,由Docker程序将这些Dockerfile指令翻译成真正的Linux命令.Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefil

  • 浅谈使用Maven插件构建Docker镜像的方法

    本文介绍了使用Maven插件构建Docker镜像的方法,分享给大家,具体如下: 工具 工欲善其事,必先利其器.笔者经过调研,有以下几款Docker的Maven插件进入笔者视野: 插件名称 官方地址 docker-maven-plugin https://github.com/spotify/docker-maven-plugin docker-maven-plugin https://github.com/fabric8io/docker-maven-plugin docker-maven-pl

  • java项目构建Gradle的使用教程

    目录 一.相关介绍 二.安装 三.IED中的使用 1.IDEA 2.Eclipse 四.问题说明 一.相关介绍 Gradle是一个好用的构建工具 ,使用它的原因是: 配置相关依赖代码量少,不会像maven一样xml过多 打包编译测试发布都有,而且使用起来方便 利用自定义的任务可以完成自己想要的功能 二.安装 下载地址http://services.gradle.org/distributions/  ,下载你所需要对应的版本,我这里下载的是gradle-4.7-bin.zip.下载后解压到你想要

  • Docker如何使用Dockerfile构建镜像

    Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令.Docker程序将这些Dockerfile指令翻译真正的Linux命令.Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile.Docker程序将读取Dockerfile,根据指令生成定制的image.相比image这种黑盒子,Dockerfile这种显而易见的脚本更容易被使用者接受,它明确的表明image是

  • 使用Java实现构建jenkins的多个job并返回构建结果示例

    背景: 使用java实现jenkins构建很简单,但是如何确定什么时候job已经构建完成才是关键,而且要实现多个job并行构建. 分析: 我有一篇文章提到过使用java实现jenkins构建,但是获取的结果是最后一次构建的结果,不能实时获取构建结果.实时获取构建结果有个关键的点,在于他会根据构建的版本号获取当前版本号的结果,如果对应版本号的结果为空则证明还在构建过程中,按照这个思路我们就可以进行编码了. 1.判断指定构建版本号的job是否执行完; 2.根据是否构建完成获取构建结果; /** *

  • 利用 Docker 构建简单的 java 开发编译环境的方法详解

    目前 Java 语言的版本很多,除了常用的 Java 8,有一些遗留项目可能使用了 Java 7,也可能有一些比较新的的项目使用了 Java 10 以上的版本.如果想切换自己本地的 Java 开发环境,折腾起来还是需要花费一些时间的,并且日后在不同版本间切换每次都要折腾一次. Docker 的出现让我们维护不同版本的开发编译环境变得简单,如果你还不知道什么是 Docker 可以看看 Docker 入门介绍.我们可以采用两种方式来构建 java 的开发环境,一种是在容器内编译运行,一种是在容器外编

  • Docker构建镜像的两种方式实现

    目录 从已有镜像更新镜像: 从零开始构建镜像: 从 docker 镜像仓库中下载的镜像不能满足我们的需求时,可以通过以下两种方式对镜像进行更改. 从已有镜像更新镜像 从零开始构建镜像 从已有镜像更新镜像: 更新镜像之前,我们需要使用镜像来创建一个容器. 进入容器: docker run -t -i db2b37ec6181 /bin/bash 在运行的容器内使用 apt-get update 命令进行更新.在完成操作之后,输入 exit 命令来退出这个容器. 此时 ID 为 0aab061e6f

随机推荐