JAVA项目中如何优雅地构建和管理容器镜像和版本?

Jib简介

今天给大家介绍的是由Google出品的容器镜像构建类库--Jib, 通过Jib可以非常简单快速的为你的Java应用构建Docker 和 OCI 镜像, 无需深入学习docker, 无需编写Dockerfile, 以 Maven插件、Gradle插件和Java lib的形式提供。


Jib目标:

Fast- 快速部署您的更改。

Jib将您的应用程序分成多个层,从类中分离依赖项。现在您不必等待Docker重建整个Java应用程序 - 只需部署更改的层即可。

Reproducible- 使用相同内容重建容器图像始终生成相同的图像。

不用担心再次触发不必要的更新。

Daemonless- 减少CLI依赖性。

从Maven或Gradle中构建Docker镜像,然后推送到您选择的任何注册中心。

不再编写Dockerfiles并调用docker build / push。


代码演示

接下来以Maven为例, 演示构建流程:

1, 开始之前

jib依赖 docker registry, 为方便演示, 这里在本地搭建一个docker 容器注册中心, 命令如下:

在docker hub 官方容器中心, 拉取java8的容器镜像, 并推送到本地注册中心, 步骤如下:

2. 添加插件

在你的maven项目中, 将插件添加到pom.xml文件中, 如下:

PS: 首次添加插件时需要下载依赖到本地, 稍等一下即可 !

这里开发工具以IDEA community 2019, Jib插件添加成功后可以idea的maven视图查看, 如下:

3, 执行构建

这里的代码非常简单是一个spring boot 项目, 只有一个接口, 访问该接口返回hello, 这里只是为了方便演示, 核心代码如下:

在你实际开发过程中, Java应用功能完成时, 就可以直接打包为容器镜像, 并推送到注册中心, 操作如下:

Idea Maven视图 --> Plugins --> jib --> jib:build --> 右键 Run Maven Build


到此Java应用直接构建容器镜像已经完成了, 项目的端口是默认的8080


4, 启动

启动就是docker启动就步骤: pull --> run

启动成功后访问看效果:

写在后面的...

在开发Java项目时, 如果需要docker部署测试, 使用Jib真的是太方便了,代码写完, 无需编写dockerfile直接一键构建容器镜像并推送到容器注册中心, 由于容器的天然隔离性, 不会破坏其他的开发测试环境, 测试人员测试发现问题时, 统一的容器环境也能更方便地错误重现, bug调式, 此乃开发必备之利器 !


其他

1, Jib参数

Jib提供很多的参数允许对容器进行个性化配置, 如: jvm参数、docker 端口映射、环境变量、容器内外目录映射等 等, 详情参考: github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#extended-usage


2, 构建并推送容器中心

你可以通过配置插件, 把构建的镜像推送到指定的容器注册中心, 以 Docker Hub Registry为例, 配置如下:

PS: 需要有dokcer hub 的帐号, 且有权限上传容器

详情参考:

github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#using-docker-hub-registry
发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章