校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Spring Boot Docker打包工具小結

Spring Boot Docker打包工具小結

熱門標簽:10086外包用的什么外呼系統 宿城區電話機器人找哪家 麗江真人語音電話外呼系統 打400電話怎么辦理收費 上海申請高400開頭的電話 400電話辦理介紹信 怎么找到沒有地圖標注的店 河南防封號電銷機器人是什么 福州企業電銷機器人排名

最近公司的應用準備容器化,因為幾十個應用從測試到發布太麻煩了,而且還會因為環境的因素導致部署中出現各種問題。為了在開發、測試、生產都能保持一致的環境,就引進了容器技術,先拿邊緣的項目試試水,積累下經驗,今天對幾種常見的Spring Boot Docker打包工具進行了簡單總結。

Spring Boot Docker

在Spring Boot應用中,我們可以約定不同的標識來定義不同的環境。例如 dev 表示開發環境、test表示測試環境,對應的配置文件為apppcation-dev.yaml、apppcation-test.yaml。我們通過聲明spring.profiles.active來激活對應的環境配置,例如激活dev環境時spring.profiles.active=dev。完整的啟動命令為:

java -Djava.security.egd=file:/dev/./urandom  -Dspring.profiles.active=dev -jar spring-boot-app.jar  

根據上面的命令編寫一個能夠適應多環境的Dockerfile:

# 引入 openjdk 鏡像 
FROM adoptopenjdk/openjdk8 
# 聲明作者 
LABEL AUTHOR=felord OG=felord.cn 
# 掛載幾個有用的文件夾 比如日志 
VOLUME ["/tmp","/logs"] 
# 聲明一個環境參數用來動態啟用配置文件 默認dev 
ENV ACTIVE=dev 
# 暴露端口 
EXPOSE 8080 
# 復制并修改應用打包后的jar文件名稱 
ADD /target/flyway-spring-boot-1.0.0.jar app.jar 
# 容器啟動時第一個運行的命令 用來啟動應用 
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=${ACTIVE}","-jar","app.jar"] 

這樣打包的Docker鏡像就可以通過docker run添加額外的--env ACTIVE=test 來動態的改變環境。單純的編寫Dockerfile不方便我們DevOps。

docker 鏡像生命周期

我們需要能夠自動地構建、推送到倉庫、拉取鏡像、運行一系列流水線操作。好在市面上有很多工具來幫助我們實現這一過程。

spring-boot-maven-plugin

這個是Spring Boot官方的插件,在2.x的某個版本提供了Docker鏡像構建能力。

<project> 
 <build> 
  <plugins> 
   <plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
    <configuration> 
     <image> 
     <name>docker.repo.com/library/${project.artifactId}:${project.version}</name> 
      <publish>true</publish> 
     </image> 
     <docker> 
      <publishRegistry> 
       <username>user</username> 
       <password>secret</password> 
       <url>https://docker.repo.com/v1/</url> 
       <email>user@example.com</email> 
      </publishRegistry> 
     </docker> 
    </configuration> 
   </plugin> 
  </plugins> 
 </build> 
</project>

配置好Docker私倉后就可以通過mvn clean spring-boot:build-image 進行構建鏡像了。

這種方式好處就是無額外依賴,缺點就是需要從github下載構建元件,網絡如果不好就容易失敗。

Spotify Maven Plugin

Spotify Maven 插件是一個目前比較普遍的選擇。它要求應用程序開發人員編寫Dockerfile,并把Dockerfile放在項目src/main/docker目錄下。然后你就可以通過引入:

<plugin> 
          <groupId>com.spotify</groupId> 
          <artifactId>dockerfile-maven-plugin</artifactId> 
          <version>1.4.8</version> 
          <configuration> 
              <repository>repo.com/${project.artifactId}</repository> 
          </configuration> 
      </plugin> 

這個插件提供了mvn dockerfile:build、mvn dockerfile:tag、mvn dockerfile:push三個命令分別用來構建、打標簽、發布到遠端私有倉庫,非常簡單。

這個是一個非常容易上手的插件,唯一的要求就是需要會編寫Dockerfile,對定制化要求高的可以使用這個。

Jib Maven Plugin

這個曾經我在早些時候的一篇文章中已經介紹過了,可以詳細了解一下。它是谷歌開源的OCI鏡像打包工具,可以用來打包Docker鏡像,大部分情況下已經滿足需要。但是如果你要定制化的話還是不容易的,需要閱讀官方給的文檔。最開始的Dockerfile如果使用JIb的話需要這樣配置:

<plugin> 
    <groupId>com.google.cloud.tools</groupId> 
    <artifactId>jib-maven-plugin</artifactId> 
    <version>3.0.0</version> 
    <configuration> 
        <from> 
            <image>adoptopenjdk/openjdk8</image> 
        </from> 
        <to> 
            <image>docker.repo.com/library/${project.artifactId}</image> 
            <auth> 
                <username>felord</username> 
                <password>xxxxxx</password> 
            </auth> 
            <tags> 
                <tag>${project.version}</tag> 
            </tags> 
        </to> 
        <extraDirectories> 
            <paths> 
                <path> 
                    <from>target/${project.artifactId}-${project.version}.jar</from> 
                    <includes>*.jar</includes> 
                    <into>/app.jar</into> 
                </path> 
            </paths> 
        </extraDirectories> 
        <containerizingMode>packaged</containerizingMode> 
        <container> 
            <volumes>/tmp,/logs</volumes> 
            <ports> 
                <port>8080</port> 
            </ports> 
            <environment> 
                <active>dev</active> 
            </environment> 
            <entrypoint> 
                java,-Djava.security.egd=file:/dev/./urandom,-Dspring.profiles.active=${active},-jar,/app.jar 
            </entrypoint> 
            <creationTime>USE_CURRENT_TIMESTAMP</creationTime> 
        </container> 
    </configuration> 
</plugin> 

優點是不需要本地Docker環境,而且支持分層構建、鏡像瘦身,上手容易;缺點是定制化比較困難。

到此這篇關于Spring Boot的 Docker打包插件哪個好用的文章就介紹到這了,更多相關Spring Boot Docker打包插件內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:雞西 隴南 遵義 運城 荊門 連云港 朝陽 面試通知

巨人網絡通訊聲明:本文標題《Spring Boot Docker打包工具小結》,本文關鍵詞  Spring,Boot,Docker,打包,工具,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Spring Boot Docker打包工具小結》相關的同類信息!
  • 本頁收集關于Spring Boot Docker打包工具小結的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    中文字幕一区在线观看视频| 美女久久久精品| 国产欧美视频一区二区三区| 91麻豆精品国产91久久久久久久久 | 免费观看在线综合色| 亚洲电影在线播放| 亚洲18女电影在线观看| 午夜精品久久久| 亚洲超碰97人人做人人爱| 亚洲一区二区三区爽爽爽爽爽 | 美女在线视频一区| 久久久一区二区三区捆绑**| 精品国产免费人成电影在线观看四季| 制服丝袜亚洲精品中文字幕| 欧美午夜片在线看| 欧美日本在线看| 欧美精品亚洲二区| 日韩三级伦理片妻子的秘密按摩| 欧美日本乱大交xxxxx| 91精品在线观看入口| 色婷婷一区二区| 亚洲成精国产精品女| 欧美aaaaa成人免费观看视频| 蜜臀久久久久久久| 国产精品自拍毛片| 99国产精品一区| 欧美精品18+| 久久免费看少妇高潮| 亚洲欧洲另类国产综合| 亚洲福利电影网| 国产综合色在线| 欧美视频精品在线| 精品国产成人在线影院| 亚洲精品国产精华液| 蜜臀久久99精品久久久久久9| 成人丝袜视频网| 91.xcao| 国产精品二三区| 日韩激情视频在线观看| 懂色av一区二区三区免费看| 欧美日韩视频在线一区二区| 久久网站最新地址| 一区二区成人在线视频| 丰满少妇在线播放bd日韩电影| 91欧美一区二区| 亚洲精品一区二区三区蜜桃下载 | 午夜亚洲福利老司机| 国产精品香蕉一区二区三区| 色八戒一区二区三区| 久久久久久久久久久久久夜| 亚洲一二三区视频在线观看| 国产v综合v亚洲欧| 精品国产亚洲在线| 五月婷婷综合网| 在线亚洲人成电影网站色www| 久久一日本道色综合| 日本中文在线一区| 欧美日韩国产一区二区三区地区| 国产精品福利一区二区三区| 狠狠色丁香久久婷婷综合丁香| 在线日韩一区二区| 国产精品午夜电影| 黑人巨大精品欧美一区| 欧美一区二区三区日韩| 亚洲国产精品久久不卡毛片| 成人av在线电影| 久久综合精品国产一区二区三区 | 综合欧美亚洲日本| 99热这里都是精品| 91亚洲男人天堂| 欧美国产成人精品| 激情综合色丁香一区二区| 777久久久精品| 同产精品九九九| 欧美日韩一区二区在线观看 | 国产乱淫av一区二区三区| 日韩欧美国产精品一区| 丝袜亚洲另类欧美| 欧美一卡2卡3卡4卡| 捆绑变态av一区二区三区 | 国产成人免费视频一区| 久久精品视频一区二区| 成人少妇影院yyyy| 国产精品日韩精品欧美在线| 成人高清视频在线| 亚洲精品写真福利| 欧美性猛交xxxxxxxx| 亚洲国产精品久久久久婷婷884| 欧美日韩一区不卡| 日本系列欧美系列| 欧美精品一区二区三区在线| 国产一区二区伦理| 中文字幕乱码一区二区免费| 99精品视频免费在线观看| 亚洲三级在线看| 欧美日韩国产首页| 精品一区二区三区在线视频| 久久婷婷综合激情| 色婷婷国产精品久久包臀| 午夜精品福利一区二区三区av| 日韩一区二区视频| av在线播放成人| 亚洲18女电影在线观看| 久久精品欧美一区二区三区麻豆 | 奇米影视在线99精品| 国产色91在线| 欧美三级日本三级少妇99| 国产呦精品一区二区三区网站| 国产欧美精品在线观看| 日本丰满少妇一区二区三区| 日韩av高清在线观看| 国产欧美精品区一区二区三区| 在线观看不卡视频| 国内一区二区在线| 亚洲综合一二三区| 欧美激情自拍偷拍| 精品日韩av一区二区| 一本到高清视频免费精品| 韩日av一区二区| 亚洲成人资源在线| 国产精品久久久久婷婷| 日韩一级免费观看| 欧美午夜在线一二页| 国产成人免费av在线| 秋霞电影网一区二区| 亚洲精品免费在线| 国产精品理伦片| 精品国产乱码久久久久久图片| 在线观看免费视频综合| 福利一区福利二区| 久久99国产精品久久99| 三级不卡在线观看| 亚洲综合色区另类av| 国产精品伦一区二区三级视频| 久久这里只有精品首页| 8x8x8国产精品| 欧美日韩一区小说| 99国产精品一区| 成人晚上爱看视频| 国产·精品毛片| 国产精品一区免费在线观看| 日韩精品每日更新| 日韩福利视频网| 日韩在线一区二区三区| 爽爽淫人综合网网站| 午夜精品福利一区二区蜜股av| 亚洲狠狠丁香婷婷综合久久久| 日韩美女视频一区二区 | 一区二区三区中文在线| 中文字幕一区视频| 亚洲欧洲99久久| 亚洲品质自拍视频| 一区二区三区四区五区视频在线观看 | 日本电影亚洲天堂一区| 色先锋资源久久综合| 99精品国产一区二区三区不卡| 99久久精品免费| 91亚洲精品乱码久久久久久蜜桃 | 成a人片亚洲日本久久| jizz一区二区| 色综合欧美在线视频区| 欧洲精品在线观看| 欧美性感一类影片在线播放| 欧美人妖巨大在线| 日韩午夜在线播放| 国产丝袜在线精品| 中文字幕在线播放不卡一区| 亚洲综合区在线| 捆绑紧缚一区二区三区视频| 国产自产视频一区二区三区| 成人深夜在线观看| 欧美性色欧美a在线播放| 91精品午夜视频| 亚洲国产精品高清| 亚洲综合999| 麻豆成人91精品二区三区| 国产成人高清视频| 日本福利一区二区| 欧美精品一区二区在线播放| 国产精品美女www爽爽爽| 一二三四社区欧美黄| 奇米在线7777在线精品| 成人午夜视频在线观看| 欧亚一区二区三区| www激情久久| 樱桃国产成人精品视频| 国产呦精品一区二区三区网站| 91在线免费播放| 欧美成人aa大片| 亚洲少妇屁股交4| 免费观看一级欧美片| 99精品偷自拍| 精品欧美一区二区三区精品久久| 国产欧美日韩精品一区| 日本欧美肥老太交大片| 99国产精品久久久久| 欧美xxxxxxxx| 亚洲成a人v欧美综合天堂| 成人在线综合网| 日韩欧美精品在线|