成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用JIB插件輕松實(shí)現(xiàn)Spring Boot應(yīng)用容器化

開發(fā)
通過本文的學(xué)習(xí),讀者了解了如何使用Google的Jib構(gòu)建和發(fā)布Docker鏡像。

在微服務(wù)架構(gòu)中,構(gòu)建Docker鏡像是必不可少的。然而,構(gòu)建Docker鏡像并不是一項(xiàng)容易的任務(wù)。通常情況下,需要先了解Docker的知識(shí),編寫Dockerfile,然后運(yùn)行Docker守護(hù)程序來構(gòu)建和發(fā)布鏡像到注冊表。

盡管有一些Maven和Gradle的Docker插件可供選擇,例如Spotify的Docker插件和fabric8的Docker插件,但在本文中,我們要給讀者介紹一種新的方法——Jib。

Jib是一款由Google開發(fā)的開源容器鏡像構(gòu)建工具。Jib采用了獨(dú)特的構(gòu)建方式,使用Jib無需編寫Dockerfile或安裝Docker守護(hù)程序就可以輕松地使用Maven或Gradle構(gòu)建Java容器。接下來,我們將詳細(xì)介紹如何使用Jib來構(gòu)建和發(fā)布Docker鏡像。

1. 為什么使用Jib

下面的引用摘自Jib的官方頁面,清楚地說明了Jib的優(yōu)勢:

您無需維護(hù)Dockerfile,運(yùn)行Docker守護(hù)程序,甚至不必?fù)?dān)心創(chuàng)建帶有所有依賴項(xiàng)的大型JAR文件。

2. 將Jib添加到應(yīng)用程序中

現(xiàn)在來看一個(gè)例子。構(gòu)建一個(gè)樣例的Spring Boot REST服務(wù),并將Jib依賴項(xiàng)添加到其中,以創(chuàng)建項(xiàng)目的Docker鏡像。稍后我們將看到如何將此鏡像推送到我們選擇的容器注冊表中。

這里有一個(gè)可工作的項(xiàng)目,現(xiàn)在可以使用Jib為其創(chuàng)建一個(gè)容器鏡像。Jib Maven插件將完成所有繁重的工作。將插件配置添加到pom.xml文件的<build><plugins>部分。

JIB的Maven插件

唯一需要配置的是提供<to><image>,即Docker鏡像的名稱。現(xiàn)在可以使用該插件創(chuàng)建一個(gè)Docker鏡像,該鏡像將在本地的Docker守護(hù)程序上可用。

$ mvn clean compile jib:dockerBuild

mvn jib構(gòu)建日志

從輸出中,可以看到Jib的神奇之處。它為應(yīng)用程序創(chuàng)建了三個(gè)獨(dú)立的圖像層。默認(rèn)基本層是gcr.io/distroless/java:8。然后,我們得到一個(gè)用于依賴項(xiàng)、資源和類的單獨(dú)圖像層。這意味著對應(yīng)用程序源代碼的更改只需要重新構(gòu)建類層。Jib還自動(dòng)發(fā)現(xiàn)了SpringBootJibApplication中的main方法。

如果我們檢查Docker,可以看到新鏡像可供使用。

$ docker images springboot-jib

docker images結(jié)果

您會(huì)注意到CREATED顯示的是50 years ago,這似乎不正確。這是因?yàn)镴ib默認(rèn)創(chuàng)建可復(fù)現(xiàn)的構(gòu)建;因此,它不包含構(gòu)建時(shí)間戳。(關(guān)于可復(fù)現(xiàn)構(gòu)建的更多信息。)

讓我們運(yùn)行以確保它正常工作。

$ docker run -p 8080:8080 --name springboot-jib springboot-jib

應(yīng)用程序啟動(dòng)日志

現(xiàn)在可以使用push命令docker push ...將我們的鏡像推送到Docker Hub,但是Jib也可以為我們完成這個(gè)操作。當(dāng)您嘗試對項(xiàng)目進(jìn)行一些更改并重新構(gòu)建時(shí),會(huì)發(fā)現(xiàn)構(gòu)建速度更快。

3. 鏡像注冊表的Jib配置

可以使用Jib在構(gòu)建過程中自動(dòng)將鏡像推送到容器注冊表。因此,需要使用Docker倉庫路徑適當(dāng)?shù)貥?biāo)記我們的容器鏡像。作為最佳實(shí)踐,可以使用我們的Maven項(xiàng)目版本給鏡像打上標(biāo)簽。

更新Docker Hub注冊表路徑

Jib將需要您的容器注冊表憑據(jù)以便能夠?yàn)槟扑顽R像。有幾種選擇,但這里將在構(gòu)建命令中內(nèi)聯(lián)添加我的憑據(jù)。

$ mvn jib:build -Djib.to.auth.username=prgnr173 -Djib.to.auth.password=

推送Docker Hub鏡像

4. Jib插件的其他配置

Jib還提供了其他一些配置選項(xiàng)。例如,如果不想使用默認(rèn)的distroless鏡像,可以添加一個(gè)基于alpine的FROM鏡像。

使用alpine作為基礎(chǔ)鏡像

Jib還支持許多Java運(yùn)行時(shí)配置:

  • jvmFlags用于指定要傳遞給JVM的啟動(dòng)標(biāo)志。
  • mainClass用于指示主類,默認(rèn)情況下,Jib將嘗試自動(dòng)推斷。
  • args用于指定傳遞給主方法的程序參數(shù)。

請確保查看Jib的文檔以查看所有可用的配置屬性。

5. 比較

下面是Google Cloud分享的Jib和Docker的構(gòu)建時(shí)間比較,Jib明顯是勝出者。

構(gòu)建時(shí)間比較:Jib vs Docker

6. 總結(jié)

通過本文的學(xué)習(xí),讀者了解了如何使用Google的Jib構(gòu)建和發(fā)布Docker鏡像。可以訪問Jib的官方文檔,根據(jù)您的項(xiàng)目需求進(jìn)行更好的定制。

責(zé)任編輯:趙寧寧 來源: Java學(xué)研大本營
相關(guān)推薦

2023-10-25 18:08:13

應(yīng)用容器化Docker

2022-02-09 20:39:52

Actuator應(yīng)用監(jiān)控

2025-05-13 07:13:25

2019-04-16 09:10:12

Java開發(fā)代碼

2025-02-08 08:16:16

2018-10-22 15:34:31

Spring Boo監(jiān)控視化

2020-04-23 15:59:04

SpringKafka集群

2024-01-04 18:01:55

高并發(fā)SpringBoot

2021-10-18 10:36:31

Spring Boot插件Jar

2021-10-18 12:04:22

Spring BootJava開發(fā)

2023-11-28 13:50:00

Kubernetes容器

2024-08-09 08:52:26

2020-11-10 09:19:23

Spring BootJava開發(fā)

2023-12-27 18:05:13

2024-10-11 11:32:22

Spring6RSocket服務(wù)

2022-07-13 08:36:57

MQ架構(gòu)設(shè)計(jì)模式

2023-04-11 16:04:19

Spring Boo端點(diǎn)運(yùn)維

2019-07-15 10:00:53

DockerJava容器

2022-02-08 17:07:54

Spring BooSpring Aop日志記錄

2019-07-15 16:00:24

Docker架構(gòu)容器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 久久国产精品一区二区三区 | 久久新 | 色视频成人在线观看免 | 日韩电影在线一区 | 久久国产欧美日韩精品 | 午夜影院在线观看 | 亚洲综合在线播放 | 久久高清 | 黄色一级大片在线免费看产 | 中文字幕一区在线观看视频 | 性欧美精品一区二区三区在线播放 | 久久久国产精品视频 | jlzzjlzz欧美大全 | 操夜夜 | 国产黄色大片 | 国产剧情一区 | 亚洲最大成人综合 | 欧美日韩在线免费 | 精品1区2区| 成人在线中文字幕 | 日韩中文字幕一区二区 | 一区二区三区四区av | 999久久久精品 | 国产一区久久久 | 超级乱淫av片免费播放 | 欧美成人精品在线 | 久久精品国产99国产 | 国产精品视频网站 | 欧美一级片 | 日韩欧美在线观看视频 | 一级黄色录像毛片 | 日韩中文字幕一区二区 | www.成人在线视频 | 久久亚洲天堂 | 91原创视频在线观看 | 国内精品视频一区二区三区 | 国产欧美在线 | 五月婷婷在线播放 | 亚洲精品在线观看网站 | 天天插天天舔 | 中文在线亚洲 |