首頁  >  文章  >  Java  >  如何利用jib插件建構Java應用的鏡像

如何利用jib插件建構Java應用的鏡像

王林
王林轉載
2023-05-09 21:07:061080瀏覽

簡介

Java應用程式開發的容器化,需要製作docker映像。要是用戶本機沒安裝docker,可以使用jib製作出有映像的tar檔。

Jib提供了四種使用方式:

  • Maven外掛:jib-maven-plugin

  • ##Gradle外掛:jib -gradle-plugin

  • Java庫: Jlib Core

  • Jib CLI

jib建置工具主要包含了四個強大的功能。

  • build :提供了建立鏡像並推送到遠端倉庫功能。

  • buildTar :提供建立一個包含映像的tar檔案功能。

  • dockerBuild:提供建立docker映像到本機功能。

  • exportDocker:rContext提供建立dockerfile功能。

當編譯構建是在沒有docker環境的情況下構建,使用build命令和dockerBuild命令並不能製作出鏡像,只能使用buildTar命令製作出一個包含鏡像的tar文件。

使用Maven插件將Java應用程式建構成docker映像

1.修改需要製作映像的專案程式碼:找到pom檔案宣告jib插件,

pom.xml檔案中宣告Jib插件:

<!--使用jib插件-->
            <plugin>
                <groupId>com.google.cloud.tools</groupId>
                <artifactId>jib-maven-plugin</artifactId>
                <version>1.3.0</version>
                <configuration>
                    <!--from节点用来设置镜像的基础镜像,相当于Docerkfile中的FROM关键字-->
                    <from>
                        <!--使用openjdk官方镜像,tag是8-jdk-stretch,表示镜像的操作系统是debian9,装好了jdk8-->
                        <image>openjdk:8-jdk-stretch</image>
                    </from>
                    <to>
                        <!--镜像名称和tag,使用了mvn内置变量${project.version},表示当前工程的version-->
                        <image>lendea/hellojib:${project.version}</image>
                    </to>
                    <!--容器相关的属性-->
                    <container>
                        <!--jvm内存参数-->
                        <jvmFlags>
                            <jvmFlag>-Xms256m</jvmFlag>
                            <jvmFlag>-Xmx256m</jvmFlag>
                        </jvmFlags>
                        <!--要暴露的端口-->
                        <ports>
                            <port>8081</port>
                        </ports>
                    </container>
                </configuration>
            </plugin>

  • from標籤:設定基礎映像,相當於dockerfile中的FROM關鍵字,這裡建議使用SWR中的映像,建置時下載速度快且穩定。

  • to標籤:設定製作出來的鏡像的鏡像名稱和tag。

  • container標籤:設定容器的相關屬性,jvm記憶體參數,連接埠等。

2.建立建置任務並執行

# -Dmaven.test.skip=true: 跳过单元测试
# -U: 每次构建检查以来更新,可避免缓存中快照版本依赖不更新问题,但会牺牲部分性能
# -e -X: 打印调试信息,定位疑难构建问题时建议使用此参数构建
# -B: 以batch模式运行,可避免日志打印出现ArrayIndexOutOfBoundsException异常

mvn compile jib:buildTar -Dmaven.test.skip=true -U -e -X -B

在java專案的target目錄下,可以看到產生的tar鏡像。

3.使用tar映像

執行
docker load -i xxx.tar 指令將tar檔案的映像載入到本機映像倉庫,再使用docker run --rm -p 8081:8081 lendea/hellojib:0.0.1等指令啟動容器來測試功能。

以上是如何利用jib插件建構Java應用的鏡像的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除