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