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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Jib构建你的第一个java镜像

發(fā)布時間:2023/12/31 综合教程 21 生活家
生活随笔 收集整理的這篇文章主要介紹了 Jib构建你的第一个java镜像 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

jib Official:GoogleContainerTools/jib

本文示例完整demo github地址 github.com/moxingwang/…

想要了解并且使用jib,首先你得知道或者使用過docker,在這個基礎(chǔ)上才能夠明白jib是干什么得,解決了什么問題。

首先我們先看一個例子,如何將一個spring-boot項目簡單容器化,如果你從未操作過,可以動手自己實現(xiàn),或者仔細閱讀這篇文章第一個 spring Boot 應(yīng)用通過Docker 來實現(xiàn)構(gòu)建、運行、發(fā)布。你可能發(fā)現(xiàn)如果需要把一個java項目容器化這是一個麻煩和相對復(fù)雜的過程,首先你需要編寫dockerfile,然后在build dockefile,如過需要push到registries,還需要經(jīng)過push操作。雖然build和push還是非常簡單得。但是寫一個dockerfile真的比較麻煩,學(xué)習(xí)成本也高,看看官網(wǎng)Dockerfile reference就不想學(xué)了。那么有沒有簡單得辦法呢,記住幾個簡單得命令就可以運行了,如同‘mvn spring-boot:run’這么簡單得命令,這個時候jib出場了,他就是來完成這個偉大得使命。

如果你還沒明白jib是用來做什么事情得,推薦你閱讀谷歌開源Java鏡像構(gòu)建工具Jib的前半部分,或者閱讀jib Official:GoogleContainerTools/jib。

接下來主要介紹具體如何使用(maven的方式)。

將java項目容器化push到registries

jib的引入非常簡單,已maven plugin的方式集成到項目中,只需要在你的項目中引入下面代碼即可

<plugin>
    <groupId>com.google.cloud.tools</groupId>
    <artifactId>jib-maven-plugin</artifactId>
    <version>0.9.6</version>
    <configuration>
        <from>
            <!--base image-->
            <image>openjdk:alpine</image>
        </from>
        <to>
            <!--<image>registry.cn-hangzhou.aliyuncs.com/m65536/jibtest</image>-->
            <!--目標鏡像registry地址,為了方便測試,你需要換成自己的地址,如果你的網(wǎng)絡(luò)不好,可以選用國內(nèi)加速器,比如阿里云的-->
            <image>registry.hub.docker.com/moxingwang/jibtest</image>
        </to>
    </configuration>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>build</goal>
            </goals>
        </execution>
    </executions>
</plugin>

復(fù)制代碼

這只是一個最簡單的配置,比如registry認證配置,jvm配置等等,可以參考github jib詳細說明jib/jib-maven-plugin/。

構(gòu)建你的鏡像

mvn compile jib:build
復(fù)制代碼

可能你剛剛運行玩這一步就出現(xiàn)錯誤,提示Unauthorized,不用擔心,這個命令需要把構(gòu)建出來的image commit并且push到你遠程的registry(我這里是registry.hub.docker.com),你可以按照【常見錯誤1】的方法解決問題。

如果你的網(wǎng)速慢一點可能會在最后步驟'Finalizing...',不過沒有關(guān)系,稍微多等一會就ok,直到'BUILD SUCCESS'出現(xiàn)。最終一個完整的java project被實例化成鏡像并且push到了registry里。接下來你可以測試剛剛完成push的鏡像。

打開hub.docker.com/,你會發(fā)現(xiàn)你的image已經(jīng)構(gòu)建成功。

docker使用鏡像

docker run -it --rm -p8080:8080 registry.hub.docker.com/moxingwang/jibtest
復(fù)制代碼

一個spring-boot的image這樣就被啟動成功了。本文示例demo中集成了swagger-iu, 項目啟動成功后我們可以通過http://localhost:8080/sw/swagger-ui.html訪問,可以成功在瀏覽器打開swagger。

把鏡像直接構(gòu)建到本地docker中

使用這種構(gòu)建方式,首先你要確保本已經(jīng)安裝docker并且環(huán)境變量都配置正確,因為這種方式j(luò)ib依賴docker 命令執(zhí)行,你還需要保證已經(jīng)啟動服務(wù)(在terminal中執(zhí)行 docker --version 能夠正確返回)。

mvn compile jib:dockerBuild
復(fù)制代碼

接下來直接操作,首先查看本地已有images

docker iamges
復(fù)制代碼

執(zhí)行mvn compile jib:dockerBuild

可以看到本地image已經(jīng)build成功。可以直接啟動使用

docker run -it --rm -p8080:8080 moxingwang/jibtest
復(fù)制代碼

啟動成功后同樣可以直接訪問http://localhost:8080/sw/swagger-ui.htmlswagger頁面。

常見錯誤

常見錯誤1 Failed to execute goal com.google.cloud.tools:jib-maven-plugin:0.9.6:build (default-cli) on project jib: Build image failed, perhaps you should set a credential helper name with the configuration '' or set credentials for 'registry.hub.docker.com' in your Maven settings: Unauthorized for registry.hub.docker.com/moxingwang/jibtest: 401 Unauthorized

當你從私有的registries pull或者push的時候需要認證機制。閱讀官方說明按照步驟操作即可。Authentication Methods。
如果幫你本機已經(jīng)按照docker,那么操作更簡單,可以通過docker命令直接登陸registries,然后繼續(xù)其他jib的操作。

registry.hub.docker.com

docker login --username=你的hub.docker的用戶名 registry.hub.docker.com
復(fù)制代碼

registry.cn-hangzhou.aliyuncs.com

docker login --username=阿里云docker用戶名 registry.cn-hangzhou.aliyuncs.com
復(fù)制代碼

推薦閱讀

jib Official:GoogleContainerTools/jib
谷歌開源Java鏡像構(gòu)建工具Jib

原文地址:https://juejin.im/post/5b4e9c316fb9a04fa01d39d6

總結(jié)

以上是生活随笔為你收集整理的Jib构建你的第一个java镜像的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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