欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

背景

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

spotify 、fabric8

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

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

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

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

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

jib

項(xiàng)目每次發(fā)布實(shí)際上變更的代碼量不大,尤其依賴(lài)的 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)建,減小傳輸體積

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

mvn jib:dockerBuild

以上三種方案的問(wèn)題

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

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

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

解決方案

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

在這里插入圖片描述

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

 <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

其他說(shuō)明

docker host 配置不生效

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

在這里插入圖片描述

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

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

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

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

 :: 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)文章

  • docker中run命令30個(gè)常用參數(shù)詳解和示例

    docker中run命令30個(gè)常用參數(shù)詳解和示例

    這篇文章主要給大家介紹了關(guān)于docker中run命令30個(gè)常用參數(shù)的相關(guān)資料,docker?run命令是Docker中最常用的命令之一,用于創(chuàng)建并啟動(dòng)一個(gè)新的容器實(shí)例,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • 詳解docker pull下來(lái)的鏡像存儲(chǔ)在哪里

    詳解docker pull下來(lái)的鏡像存儲(chǔ)在哪里

    這篇文章主要介紹了詳解docker pull下來(lái)的鏡像存儲(chǔ)在哪里,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • docker-compose ports和expose的區(qū)別詳解

    docker-compose ports和expose的區(qū)別詳解

    這篇文章主要介紹了docker-compose ports和expose的區(qū)別詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 二進(jìn)制部署docker的超詳細(xì)教程

    二進(jìn)制部署docker的超詳細(xì)教程

    部署環(huán)境并不會(huì)一直順利,有些時(shí)候因?yàn)闀r(shí)內(nèi)網(wǎng)環(huán)境,無(wú)法使用yum等情況,對(duì)于一些中間件的部署缺少依賴(lài),我們可以使用二進(jìn)制包的形式部署docker,這篇文章主要給大家介紹了關(guān)于二進(jìn)制部署docker的相關(guān)資料,需要的朋友可以參考下
    2024-04-04
  • 解決Docker容器時(shí)區(qū)及時(shí)間不同步問(wèn)題的方法

    解決Docker容器時(shí)區(qū)及時(shí)間不同步問(wèn)題的方法

    這篇文章主要介紹了解決Docker容器時(shí)區(qū)及時(shí)間不同步問(wèn)題的方法,有效的解決了Docker容器時(shí)間同步問(wèn)題,有興趣的可以了解一下。
    2016-12-12
  • docker中mysql開(kāi)啟日志的實(shí)現(xiàn)步驟

    docker中mysql開(kāi)啟日志的實(shí)現(xiàn)步驟

    本文主要介紹了docker中mysql開(kāi)啟日志的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • Docker部署SQL?Server及最佳應(yīng)用小結(jié)

    Docker部署SQL?Server及最佳應(yīng)用小結(jié)

    SQL?Server是由Microsoft開(kāi)發(fā)和推廣的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS),本文總結(jié)了容器環(huán)境下的部署及實(shí)踐應(yīng)用,需要的朋友可以參考下
    2022-08-08
  • docker安裝MinIO全過(guò)程

    docker安裝MinIO全過(guò)程

    這篇文章主要介紹了docker安裝MinIO全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • docker安裝redis5.0.3的方法步驟

    docker安裝redis5.0.3的方法步驟

    這篇文章主要介紹了docker安裝redis5.0.3的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • Centos7上安裝docker的方法

    Centos7上安裝docker的方法

    Docker從1.13版本之后采用時(shí)間線(xiàn)的方式作為版本號(hào),分為社區(qū)版CE和企業(yè)版EE。這篇文章給大家介紹了Centos7上安裝docker的方法,感興趣的朋友一起看看吧
    2018-07-07

最新評(píng)論