快捷搜索:  汽车  科技

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)接下来以Maven为例 演示构建流程:不再编写Dockerfiles并调用docker build / push。不用担心再次触发不必要的更新。Daemonless- 减少CLI依赖性。从Maven或Gradle中构建Docker镜像,然后推送到您选择的任何注册中心。

Jib简介

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)(1)

今天给大家介绍的是由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 容器注册中心 命令如下:

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)(2)

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

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)(3)

2. 添加插件

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

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)(4)

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

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

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)(5)

3 执行构建

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

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)(6)

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

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

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

4 启动

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

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)(7)

启动成功后访问看效果:

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)(8)

写在后面的...

在开发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 的帐号 且有权限上传容器

java开发环境的配置分为两个步骤(JAVA项目中如何优雅地构建和管理容器镜像和版本)(9)

详情参考:

github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin#using-docker-hub-registry

猜您喜欢: