前言碎语
今天分享一个在容器化过程中非常重要的一个工具,java应用docker镜像build工具jib,这个工具是谷歌团队研发开源的,特点是不依赖docker守护进程,直白点说就是本地环境不安装docker环境也可以打包docker镜像。不用依赖维护Dockerfile,而且基于java打包插件可以轻松嵌入到java本身的构建生命周期中(本文使用maven)。可以说是java容器化构建利器。
插件配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
< plugin > < groupId >com.google.cloud.tools</ groupId > < artifactId >jib-maven-plugin</ artifactId > < version >0.9.11</ version > < configuration > < from > < image >xxx.cn-xxx.xxx.com/keking/jdk:1.8</ image > < auth > < username >xx@xxx-group</ username > < password >xxx#xx</ password > </ auth > </ from > < to > < image >xxx.cn-xxx.xxx.com/keking/kk-businesscard:v1.1</ image > < auth > < username >xxx@xxx-group</ username > < password >xxx#xxx</ password > </ auth > </ to > < container > < mainClass >cn.keking.kkbusinesscard.Application</ mainClass > </ container > </ configuration > </ plugin > |
配置详解
from
:定义基础镜像,这里配置的私有仓库的jre镜像
auth
:仓库认证用户和密码配置
to
:目标镜像
container
:容器内的相关配置,比如spring boot项目main方法,jvm参数等
插件命令使用
mvn compile jib:buildTar :这个命令将会构建镜像到磁盘上/targer/jib-image.tar,可以使用docker load --input target / jib-image.tar加载到docker中
mvn compile jib:dockerBuild : 构建镜像
mvn compile jib:build :构建镜像并推送到镜像仓库
mvn compile jib:exportDockerContext:如下图导出docker 构建所需的上下文到target/jib-docker-context目录,可以使用docker build -t myimage my/docker/context/构建
集成插件生命周期
在插件中添加如下,绑定到package阶段就可以使用mvn package来构建了
1
2
3
4
5
6
7
8
|
< executions > < execution > < phase >package</ phase > < goals > < goal >build</ goal > </ goals > </ execution > </ executions > |
文末结语
jib使用方便,支持maven ,gradle等build工具,是java容器化的利器。博主在实践过程中也出了点小差错,走了弯路,注意他的jib:build 和jib:dockerBuild的区别,前者会构建并推动到仓库,后者不会推送到仓库
以上就是使用GoogleContainerTools容器化jib构建docker镜像的详细内容,更多关于GoogleContainerTools容器化jib构建docker镜像的资料请关注服务器之家其它相关文章!
原文链接:http://www.kailing.pub/article/index/arcid/217.html