最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot 2.4 新特性之一鍵構(gòu)建Docker鏡像的過程詳解

 更新時(shí)間:2020年12月02日 16:59:08   作者:波哥的IT之旅  
這篇文章主要介紹了Spring Boot 2.4 新特性之一鍵構(gòu)建Docker鏡像的過程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

背景

在我們開發(fā)過程中為了支持 Docker 容器化,一般使用 Maven 編譯打包然后生成鏡像,能夠大大提供上線效率,同時(shí)能夠快速動(dòng)態(tài)擴(kuò)容,快速回滾,著實(shí)很方便。docker-maven-plugin 插件就是為了幫助我們?cè)?Maven 工程中,通過簡單的配置,自動(dòng)生成鏡像并推送到倉庫中。

spotify 、fabric8

這里主要使用的主要是如下兩種插件 spotify 、fabric8 , … -配置通過 xml 定義出 Dockerfile 或者掛載外部 Dockerfile 通過調(diào)用 Docker remote api 構(gòu)建出鏡像

pig 微服務(wù)平臺(tái)所有的容器化都是基于此構(gòu)建

<plugin>
 <groupId>com.spotify</groupId>
 <artifactId>docker-maven-plugin</artifactId>
 ... -配置通過 xml 定義出 Dockerfile 或者掛載外部 Dockerfile
</plugin>

<plugin>
 <groupId>io.fabric8</groupId>
 <artifactId>docker-maven-plugin</artifactId>
  ... -配置通過 xml 定義出 Dockerfile 或者掛載外部 Dockerfile
</plugin>

執(zhí)行相應(yīng)的插件周期即可 mvn docker:build && mvn docker:push

jib

項(xiàng)目每次發(fā)布實(shí)際上變更的代碼量不大,尤其依賴的 jar 變動(dòng)的可能性較小,如果使用前兩種插件構(gòu)建鏡像,會(huì)導(dǎo)致每次都全量構(gòu)建,會(huì)導(dǎo)致存儲(chǔ)和帶寬資源浪費(fèi)。

jib 是 Google 于 18 年 7 月發(fā)布的一個(gè)針對(duì) Java 應(yīng)用的構(gòu)建鏡像的工具(支持 Maven 和 Gradle) ,好處是能夠復(fù)用構(gòu)建緩存,能夠加快構(gòu)建,減小傳輸體積

<!--配置通過 xml 定義出 Dockerfile ,本質(zhì)上和外掛 Dockerfile 并無區(qū)別-->
<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>jib-maven-plugin</artifactId>
</plugin>

mvn jib:dockerBuild

以上三種方案的問題

在實(shí)際開發(fā)過程中,大部分的 spring boot 項(xiàng)目構(gòu)建 Dockerfile 都是相同,不需要通過的 XML 或者通過外掛 Dockerfile 來重新定義

以上插件需要對(duì) Dockerfile 的定義知識(shí)有相對(duì)的了 對(duì)開發(fā)并不友好

沒充分理由 Spring Boot 2.3 以后的 Jar 分層技術(shù)。

解決方案

Spring Boot 2.4 推出了自己的 docker 構(gòu)建工具 整合在原有的 spring-boot-maven-plugin 中,只需要配置對(duì)應(yīng)目標(biāo)倉庫和主機(jī)信息即可完成鏡像構(gòu)建。

在這里插入圖片描述

如下配置即可完成上圖中 通過開發(fā)機(jī)器在不安裝 Docker 的同時(shí),通過 192.168.0.10 的 Docker Remote API 完成鏡像構(gòu)建并發(fā)布到 192.168.0.20 的鏡像倉庫

 <plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
    <image>
      <name>192.168.0.20/pig4cloud/${project.artifactId}</name>
      <!-- 執(zhí)行完build 自動(dòng)push -->
      <publish>true</publish>
    </image>
    <!--配置構(gòu)建宿主機(jī)信息,本機(jī)不用配置-->
    <docker>
			<host>http://192.168.0.10:2375</host>
      <tlsVerify>false</tlsVerify>
      <publishRegistry>
        <username>username</username>
        <password>password</password>
        <url>192.168.0.20</url>
      </publishRegistry>
    </docker>
  </configuration>
</plugin>

執(zhí)行以下命令即可完成 鏡像的構(gòu)建和自動(dòng)發(fā)布

mvn spring-boot:build-image

其他說明

docker host 配置不生效

如下圖 ① 處配置 節(jié)點(diǎn),但是 ② 報(bào)錯(cuò)提示 host 不一致

在這里插入圖片描述

檢查本地是否配置 $DOCKER_HOST 環(huán)境變量,經(jīng)過閱讀源碼后發(fā)現(xiàn)優(yōu)先讀取此變量。

⋊> ~ echo $DOCKER_HOST                         11:07:51
tcp://172.17.0.111:2375

網(wǎng)絡(luò)支持

截取部分構(gòu)建過程中的日志,如下需要從 github 下載相關(guān)的依賴 約 100M ,這個(gè)過程大概率會(huì)失敗。建議通過配置代理或者使用國外 ECS 來解決。

 :: Spring Boot ::        (v2.4.0)
[INFO] > Running creator
[INFO]   [creator]     Downloading from https://github.com/bell-sw/Liberica/releases/download/8u275+1/bellsoft-jre8u275+1-linux-amd64.tar.gz
[INFO]   [creator]    JVMKill Agent 1.16.0: Contributing to layer
[INFO]   [creator]     Downloading from https://github.com/cloudfoundry/jvmkill/releases/download/v1.16.0.RELEASE/jvmkill-1.16.0-RELEASE.so
[INFO]   [creator]     Downloading from https://repo.spring.io/release/org/springframework/cloud/spring-cloud-bindings/1.6.0/spring-cloud-bindings-1.6.0.jar
[INFO]   [creator]     Verifying checksum
[INFO]   [creator]      192.168.0.20/pig4cloud/demo:latest
[INFO]
[INFO] Successfully built image '192.168.0.20/pig4cloud/demo:latest'
[INFO] > Pushing image '192.168.0.20/pig4cloud/demo:latest' 100%
[INFO] > Pushed image '192.168.0.20/pig4cloud/demo:latest'
[INFO] BUILD SUCCESS

到此這篇關(guān)于Spring Boot 2.4 新特性之一鍵構(gòu)建Docker鏡像的文章就介紹到這了,更多相關(guān)Spring Boot 2.4 構(gòu)建Docker鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 騰訊云服務(wù)器docker開啟端口后無法訪問的解決方法

    騰訊云服務(wù)器docker開啟端口后無法訪問的解決方法

    本文主要介紹了騰訊云服務(wù)器docker開啟端口后無法訪問的解決方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • 在Ubuntu15.04上安裝Docker的步驟以及基本用法

    在Ubuntu15.04上安裝Docker的步驟以及基本用法

    Docker是一種輕量型的的類虛擬機(jī)的平臺(tái),在開發(fā)項(xiàng)目上還是很有優(yōu)勢的,這僅是我的一種直觀理解。所以這篇文章主要給大家介紹了在Ubuntu15.04上安裝Docker的步驟以及基本用法,有需要的朋友們可以參考借鑒。
    2016-10-10
  • docker pull命令拉取鏡像失敗的解決方案

    docker pull命令拉取鏡像失敗的解決方案

    本文介紹了docker pull命令拉取鏡像失敗的解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • 手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目

    手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目

    這篇文章主要介紹了手把手教你實(shí)現(xiàn)Docker 部署 vue 項(xiàng)目,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • docker-compose如何單獨(dú)更新某個(gè)服務(wù)

    docker-compose如何單獨(dú)更新某個(gè)服務(wù)

    這篇文章主要介紹了docker-compose如何單獨(dú)更新某個(gè)服務(wù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • .NETCore Docker實(shí)現(xiàn)容器化與私有鏡像倉庫管理

    .NETCore Docker實(shí)現(xiàn)容器化與私有鏡像倉庫管理

    Docker是用Go語言編寫基于Linux操作系統(tǒng)的一些特性開發(fā)的,其提供了操作系統(tǒng)級(jí)別的抽象,是一種容器管理技術(shù),它隔離了應(yīng)用程序?qū)A(chǔ)架構(gòu)(操作系統(tǒng)等)的依賴。這篇文章主要介紹了.NETCore Docker實(shí)現(xiàn)容器化與私有鏡像倉庫管理,需要的朋友可以參考下
    2019-08-08
  • 如何查看docker run啟動(dòng)參數(shù)命令(推薦)

    如何查看docker run啟動(dòng)參數(shù)命令(推薦)

    這篇文章主要介紹了如何查看docker run啟動(dòng)參數(shù)命令,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • 深入理解docker容器中的uid和gid

    深入理解docker容器中的uid和gid

    這篇文章主要介紹了深入理解docker容器中的uid和gid,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 詳解Docker掛載本地目錄及實(shí)現(xiàn)文件共享的方法

    詳解Docker掛載本地目錄及實(shí)現(xiàn)文件共享的方法

    本篇文章主要介紹了詳解Docker掛載本地目錄及實(shí)現(xiàn)文件共享的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-12-12
  • docker之如何查看正在運(yùn)行的容器

    docker之如何查看正在運(yùn)行的容器

    這篇文章主要介紹了docker之如何查看正在運(yùn)行的容器問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評(píng)論

威远县| 淄博市| 舒兰市| 九江市| 察雅县| 神池县| 长垣县| 台东县| 天气| 隆昌县| 湖口县| 延安市| 黄石市| 板桥市| 逊克县| 共和县| 东辽县| 宁海县| 藁城市| 清镇市| 八宿县| 广河县| 宁津县| 抚州市| 海安县| 军事| 衡水市| 永胜县| 扶绥县| 邻水| 丹棱县| 自贡市| 理塘县| 银川市| 安吉县| 盐城市| 清苑县| 化德县| 中西区| 青海省| 日照市|