使用GoogleContainerTools容器化jib構(gòu)建docker鏡像
前言碎語(yǔ)
今天分享一個(gè)在容器化過(guò)程中非常重要的一個(gè)工具,java應(yīng)用docker鏡像build工具jib,這個(gè)工具是谷歌團(tuán)隊(duì)研發(fā)開(kāi)源的,特點(diǎn)是不依賴docker守護(hù)進(jìn)程,直白點(diǎn)說(shuō)就是本地環(huán)境不安裝docker環(huán)境也可以打包docker鏡像。不用依賴維護(hù)Dockerfile,而且基于java打包插件可以輕松嵌入到j(luò)ava本身的構(gòu)建生命周期中(本文使用maven)。可以說(shuō)是java容器化構(gòu)建利器。
插件配置
<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:定義基礎(chǔ)鏡像,這里配置的私有倉(cāng)庫(kù)的jre鏡像
auth:倉(cāng)庫(kù)認(rèn)證用戶和密碼配置
to:目標(biāo)鏡像
container:容器內(nèi)的相關(guān)配置,比如spring boot項(xiàng)目main方法,jvm參數(shù)等
插件命令使用
mvn compile jib:buildTar :這個(gè)命令將會(huì)構(gòu)建鏡像到磁盤(pán)上/targer/jib-image.tar,可以使用docker load --input target / jib-image.tar加載到docker中
mvn compile jib:dockerBuild : 構(gòu)建鏡像
mvn compile jib:build :構(gòu)建鏡像并推送到鏡像倉(cāng)庫(kù)
mvn compile jib:exportDockerContext:如下圖導(dǎo)出docker 構(gòu)建所需的上下文到target/jib-docker-context目錄,可以使用docker build -t myimage my/docker/context/構(gòu)建

集成插件生命周期
在插件中添加如下,綁定到package階段就可以使用mvn package來(lái)構(gòu)建了
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>文末結(jié)語(yǔ)
jib使用方便,支持maven ,gradle等build工具,是java容器化的利器。博主在實(shí)踐過(guò)程中也出了點(diǎn)小差錯(cuò),走了彎路,注意他的jib:build 和jib:dockerBuild的區(qū)別,前者會(huì)構(gòu)建并推動(dòng)到倉(cāng)庫(kù),后者不會(huì)推送到倉(cāng)庫(kù)
以上就是使用GoogleContainerTools容器化jib構(gòu)建docker鏡像的詳細(xì)內(nèi)容,更多關(guān)于GoogleContainerTools容器化jib構(gòu)建docker鏡像的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 以alpine作為基礎(chǔ)鏡像構(gòu)建Golang可執(zhí)行程序操作
- 基于Docker鏡像部署go項(xiàng)目的方法步驟
- goland把go項(xiàng)目打包進(jìn)docker鏡像的全過(guò)程記錄
- Docker 部署Go的兩種基礎(chǔ)鏡像的實(shí)現(xiàn)
- 構(gòu)建Golang應(yīng)用最小Docker鏡像的實(shí)現(xiàn)
- docker 基于golang鏡像構(gòu)建 ssh服務(wù)的方法
- 多階段構(gòu)建優(yōu)化Go?程序Docker鏡像
- 使用Docker鏡像構(gòu)建Go應(yīng)用的實(shí)現(xiàn)方法
- 詳解如何在golang鏡像中設(shè)置指定時(shí)區(qū)
- 輕松構(gòu)建Go應(yīng)用的Dockerfile
相關(guān)文章
Docker?部署?Nexus?Maven私服的詳細(xì)過(guò)程
Nexus?是一個(gè)強(qiáng)大的倉(cāng)庫(kù)管理器,廣泛用于管理和組織軟件構(gòu)建過(guò)程中的依賴項(xiàng)和構(gòu)件,通過(guò)?Docker?部署?Nexus?私服,可以簡(jiǎn)化安裝和管理過(guò)程,并提供更高的靈活性和可擴(kuò)展性,這篇文章主要介紹了Docker?部署?Nexus?Maven私服的詳細(xì)過(guò)程,需要的朋友可以參考下2024-08-08
在Docker Compose中獲取最新鏡像的多種方法總結(jié)
Docker 鏡像是 Docker 容器的基礎(chǔ),鏡像包含了應(yīng)用程序所需的所有文件和依賴,Docker-Compose 默認(rèn)不會(huì)自動(dòng)拉取最新的鏡像版本,這可能會(huì)導(dǎo)致使用過(guò)時(shí)的鏡像,從而錯(cuò)過(guò)重要的更新,為了確保 Docker-Compose 始終使用最新的鏡像,我們可以采用多種方法,以下將詳細(xì)介紹這些方法2024-08-08
docker啟動(dòng)mysql并映射數(shù)據(jù)目錄(含備份腳本)
本文主要介紹了docker啟動(dòng)mysql并映射數(shù)據(jù)目錄(含備份腳本),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2024-01-01
Docker 和 Docker Compose 的關(guān)系對(duì)比分析
Docker 和 Docker Compose 是 容器化 相關(guān)的工具,Docker Compose 是 Docker 的一個(gè)補(bǔ)充工具,用于管理 多容器應(yīng)用,本文介紹Docker 和 Docker Compose 的關(guān)系對(duì)比分析,感興趣的朋友一起看看吧2025-03-03

