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

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

云服務(wù)器|WEB服務(wù)器|FTP服務(wù)器|郵件服務(wù)器|虛擬主機(jī)|服務(wù)器安全|DNS服務(wù)器|服務(wù)器知識(shí)|Nginx|IIS|Tomcat|

服務(wù)器之家 - 服務(wù)器技術(shù) - 服務(wù)器知識(shí) - Spring Boot 2.4 新特性之一鍵構(gòu)建Docker鏡像的過程詳解

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

2021-05-31 18:22波哥的IT之旅 服務(wù)器知識(shí)

這篇文章主要介紹了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 工程中,通過簡(jiǎn)單的配置,自動(dòng)生成鏡像并推送到倉庫中。

spotify 、fabric8

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

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

?
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>

執(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)建,減小傳輸體積

?
1
2
3
4
5
6
7
<!--配置通過 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)建。

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

如下配置即可完成上圖中 通過開發(fā)機(jī)器在不安裝 Docker 的同時(shí),通過 192.168.0.10 的 Docker Remote API 完成鏡像構(gòu)建并發(fā)布到 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>
      <!-- 執(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ā)布

?
1
mvn spring-boot:build-image

其他說明

docker host 配置不生效

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

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

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

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

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

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

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女国内精品自产拍在线播放 | 国产成人精品.一二区 | 欧美3p大片在线观看完整版 | 激情影院费观看 | ova巨公主催眠1在线观看 | 日本日日黄 | 男老头澡堂gay老头456 | 欧美视频在线一区二区三区 | 极品美女aⅴ高清在线观看 极品ts赵恩静和直男激战啪啪 | 韩国三级年轻小的胰子完整 | 日本韩国推理片免费观看网站 | 日本黄色高清视频网站 | 日本中文字幕一区二区有码在线 | 男男浴室吸乳play | 国产成人一区二区三区影院免费 | 国产午夜精品一区二区三区不卡 | 美女扒开肌肌让男人桶 | 精品国产自在现线久久 | 日本一区二区视频在线 | 91手机看片国产永久免费 | 青青网| 色婷婷综合和线在线 | 久久精品手机观看 | 99午夜 | 刺客女仆| 欧美在线看片a免费观看 | 亚洲国产经典 | 亚洲嫩模吧粉嫩粉嫩冒白浆 | 午夜福利试看120秒体验区 | 国产爱啪啪 | 久久99国产综合精品AV蜜桃 | 四虎影院在线免费观看视频 | 7777奇米影视| 婷婷综合缴情亚洲五月伊 | 国产新疆成人a一片在线观看 | 成人久久18免费网站 | 99视频有精品视频免费观看 | 国产成人亚洲精品乱码在线观看 | 亚洲卡一卡2卡三卡4卡无卡三 | 日本aaaaa高清免费看 | 国产亚洲欧美成人久久片 |