日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

还在用 Dockerfile 部署 Spring Boot?out 啦!试试谷歌的大杀器 Jib

發(fā)布時間:2024/9/27 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 还在用 Dockerfile 部署 Spring Boot?out 啦!试试谷歌的大杀器 Jib 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


之前gblfy和大家分享過一篇將 Spring Boot 項目部署到遠程 Docker 上的文章:
一鍵部署 Spring Boot 到遠程 Docker 容器

但是這種部署有一個問題,就是一個小小的 helloworld 構建成鏡像之后,竟然都有 660 MB+,這就有點過分了;而且這種方式步驟繁瑣,很多人看了頭大。

因此gblfy今天想再和大家聊一聊另外一種方案 Jib,這是谷歌開源的一個容器化運行方案,使用它我們將 Spring Boot 進行容器化部署只要兩步:

第一步配置 Maven Plugin
第二步構建
我們一起來看看。

Jib

在之前那篇文章中,我們將 Spring Boot 項目進行容器化部署,要求開發(fā)人員要有一定的 Docker 技能作為支撐,然而在實際開發(fā)中,并非每個人都是 Docker 專家,或者說會用 Docker。有鑒于此,Google 搞出來一個 Jib,使 Spring Boot 容器化部署變得更加簡便,開發(fā)人員可以不需要任何 Docker 相關的技能,就能將 Spring Boot 項目構建成 Docker 中的鏡像,而且還可以“順便”將鏡像 push 到 register 上,極大的簡化了部署過程。 Jib 使用 Java 開發(fā),使用也非常簡單,可以作為 Maven 或者 Gradle 的插件直接集成到我們的項目中。它利用鏡像分層和注冊表緩存來實現(xiàn)快速、增量的構建。Jib 會自動讀取項目的構建配置,代碼組織到不同的層(依賴項、資源、類)中,然后它只會重新構建和推送發(fā)生變更的層。在項目進行快速迭代時,Jib 只將發(fā)生變更的層推送到 registers 來縮短構建時間。

好了,大致了解了 Jib 之后,接下來我們來看看 Jib 要怎么使用。

準備工作

Jib 可以直接將構建好的鏡像 push 到 registers 上,如果公司有自己的私有鏡像站的話,可以直接推送到私有鏡像站上,本文我就將構建好的鏡像推送到官方的 Docker Hub 上,因此需要大家提前準備一個 Docker Hub 的賬號,賬號大家可以直接去 Docker Hub 上面注冊(https://hub.docker.com/),大家要是對 Docker Hub 這些東西不了解,可以在公眾號后臺回復 docker,獲取松哥自制的 Docker 教程。
參考博文:
注冊docker hub賬號https://gblfy.blog.csdn.net/article/details/103438130

牛刀小試

首先我們來創(chuàng)建一個 Spring Boot 工程,創(chuàng)建時只需要添加一個 Web 依賴即可:
項目創(chuàng)建成功后,添加一個 HelloController 用來做測試:

@RestController public class HelloController {@GetMapping("/")public String hello() {return "hello google jib";} }

然后,在 pom.xml 中添加上 Jib 的插件,如下:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><plugin><groupId>com.google.cloud.tools</groupId><artifactId>jib-maven-plugin</artifactId><version>1.7.0</version><configuration><from><image>openjdk:alpine</image></from><to><image>docker.io/gblfy02/dockerjib</image><tags><tag>v1</tag></tags><auth><username>gblfy02</username><password>你的密碼</password></auth></to></configuration><executions><execution><phase>package</phase><goals><goal>build</goal></goals></execution></executions></plugin></plugins></build>

關于這段配置,我說如下幾點:

首先就是版本號的問題,我這里使用的是 1.7.0 ,網(wǎng)上有的教程比較老,用的 0.x 的版本,老的版本在配置 Docker 認證的時候非常麻煩,所以版本這塊建議大家使用當前最新版。
from 中的配置表示本鏡像構建所基于的根鏡像為 openjdk:alpine
to 中的配置表示本鏡像構建完成后,要發(fā)布到哪里去,如果是發(fā)布到私有鏡像站,就寫自己私有鏡像站的地址,如果是發(fā)布到 Docker Hub 上,就參考我這里的寫法 docker.io/gblfy02/dockerjib,其中 gblfy02表示你在 Docker Hub 上注冊的用戶名,dockerjib 表示你鏡像的名字,可以隨意取。
tags 中配置的是自己鏡像的版本。
auth 中配置你在 Docker Hub 上的用戶名/密碼。
executions 節(jié)點中的就是常規(guī)配置了,我就不再多說了。
配置完成后,在命令行執(zhí)行如下命令將當前下項目構建成一個 Docker 鏡像并 push 到 Docker Hub:

1
mvn compile jib:build
構建完成后,我們在 Docker Hub 上就能看到自己的鏡像了:

接下來,啟動 Docker ,在 Docker 中執(zhí)行如下命令拉取鏡像下來并運行:

docker run -d --name mydockerjib -p 80:80 docker.io/gblfy02/dockerjib:v1

啟動成功后,我們在瀏覽器中就可以直接訪問我們剛才的 Spring Boot 項目中的 hello 接口了:


是不是很方便?比我第一次給大家介紹的方案要方便很多。

注意

這種方式是將項目構建成鏡像后并 push 到 registers 上,這種構建方式不需要你本地安裝 Docker,如果你需要在本地運行鏡像,那當然需要 Docker,單純的構建是不需要 Docker 環(huán)境的。

本地構建
如果你電腦本地剛好安裝了 Docker ,有 Docker 環(huán)境,那么也可以將項目構建成本地 Docker 的鏡像。

總結

以上是生活随笔為你收集整理的还在用 Dockerfile 部署 Spring Boot?out 啦!试试谷歌的大杀器 Jib的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。