一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

云服務器|WEB服務器|FTP服務器|郵件服務器|虛擬主機|服務器安全|DNS服務器|服務器知識|Nginx|IIS|Tomcat|

服務器之家 - 服務器技術 - 服務器知識 - Spring Boot 2.4 新特性之一鍵構建Docker鏡像的過程詳解

Spring Boot 2.4 新特性之一鍵構建Docker鏡像的過程詳解

2021-05-31 18:22波哥的IT之旅 服務器知識

這篇文章主要介紹了Spring Boot 2.4 新特性之一鍵構建Docker鏡像的過程詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

背景

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

spotify 、fabric8

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

pig 微服務平臺所有的容器化都是基于此構建

?
1
2
3
4
5
6
7
8
9
10
11
<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>

執行相應的插件周期即可 mvn docker:build && mvn docker:push

jib

項目每次發布實際上變更的代碼量不大,尤其依賴的 jar 變動的可能性較小,如果使用前兩種插件構建鏡像,會導致每次都全量構建,會導致存儲和帶寬資源浪費。

jib 是 Google 于 18 年 7 月發布的一個針對 Java 應用的構建鏡像的工具(支持 Maven 和 Gradle) ,好處是能夠復用構建緩存,能夠加快構建,減小傳輸體積

?
1
2
3
4
5
6
7
<!--配置通過 xml 定義出 Dockerfile ,本質上和外掛 Dockerfile 并無區別-->
<plugin>
  <groupId>com.google.cloud.tools</groupId>
  <artifactId>jib-maven-plugin</artifactId>
</plugin>
 
mvn jib:dockerBuild

以上三種方案的問題

在實際開發過程中,大部分的 spring boot 項目構建 Dockerfile 都是相同,不需要通過的 XML 或者通過外掛 Dockerfile 來重新定義

以上插件需要對 Dockerfile 的定義知識有相對的了 對開發并不友好

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

解決方案

Spring Boot 2.4 推出了自己的 docker 構建工具 整合在原有的 spring-boot-maven-plugin 中,只需要配置對應目標倉庫和主機信息即可完成鏡像構建。

Spring Boot 2.4 新特性之一鍵構建Docker鏡像的過程詳解

如下配置即可完成上圖中 通過開發機器在不安裝 Docker 的同時,通過 192.168.0.10 的 Docker Remote API 完成鏡像構建并發布到 192.168.0.20 的鏡像倉庫

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<plugin>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-maven-plugin</artifactId>
  <configuration>
    <image>
      <name>192.168.0.20/pig4cloud/${project.artifactId}</name>
      <!-- 執行完build 自動push -->
      <publish>true</publish>
    </image>
    <!--配置構建宿主機信息,本機不用配置-->
    <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>

執行以下命令即可完成 鏡像的構建和自動發布

?
1
mvn spring-boot:build-image

其他說明

docker host 配置不生效

如下圖 ① 處配置 節點,但是 ② 報錯提示 host 不一致

Spring Boot 2.4 新特性之一鍵構建Docker鏡像的過程詳解

檢查本地是否配置 $DOCKER_HOST 環境變量,經過閱讀源碼后發現優先讀取此變量。

?
1
2
?> ~ echo $DOCKER_HOST                         11:07:51
tcp://172.17.0.111:2375

網絡支持

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
:: 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

到此這篇關于Spring Boot 2.4 新特性之一鍵構建Docker鏡像的文章就介紹到這了,更多相關Spring Boot 2.4 構建Docker鏡像內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/scare125/article/details/109771406

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品国产三级在线专区 | 四虎精品永久在线网址 | 午夜一级影院 | 果冻传媒mv在线观看入口免费 | 91影视在线看免费观看 | 成人影院免费在线观看 | 歪歪视频在线播放无遮挡 | japaneseles女同专区 | 91精品国产91热久久久久福利 | 99精品视频免费 | 天堂在线看 | 性色AV乱码一区二区三区视频 | 欧美人禽杂交av片 | 午夜视频在线网站 | 图片专区小说专区卡通动漫 | 久久这里只有精品视频9 | 成人欧美一区在线视频在线观看 | 99久精品| 美女做又爽又黄又猛 | 日韩欧美国产综合精品 | 美女扒开屁股让我桶免费 | 小鸟酱喷水 | 亚洲男人的天堂网站 | 久久精品国产亚洲AV蜜臀 | 国产精品免费看久久久香蕉 | α级毛片 | 色综合久久98天天综合 | 天天综合网网欲色 | 好男人在线观看免费高清2019韩剧 | 毛茸茸的大逼 | 国产精品密播放国产免费看 | 亚飞与亚基国语1080p在线观看 | 成人在线观看一区 | 国产精品久久久久久搜索 | 欧洲肥女大肥臀tv | 国产精品中文 | www.国产在线观看 | 亚洲a视频在线观看 | 91精品啪在线观看国产老湿机 | 五月天精品视频播放在线观看 | 99久久国语露脸精品国产 |