使用jib插件為Java應用構建鏡像的方法
簡介
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鏡像
想瞭解更多參數,閱讀官方文檔。https://github.com/GoogleContainerTools/jib/tree/master/jib-maven-plugin
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應用構建鏡像的文章就介紹到這瞭,更多相關jib插件構建鏡像內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Maven打包跳過測試的實現方法
- 使用eclipse 實現將springboot項目打成jar包
- IDEA打包的兩種方式及註意事項說明
- springboot打包如何忽略Test單元測試
- IDEA 配置Docker的過程