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

主頁 > 知識庫 > 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打包工具小結的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲国产精品久久人人爱蜜臀| 中文字幕国产一区| 在线免费亚洲电影| 99精品欧美一区二区三区小说| 国产乱子伦一区二区三区国色天香| 日韩av在线免费观看不卡| 日韩福利视频导航| 日韩电影在线一区| 精品一区二区三区日韩| 国产一区二三区| 高清不卡一区二区在线| 成人美女在线观看| 91视频在线观看| 欧美日韩黄视频| 欧美日韩国产另类不卡| 欧美成人精品福利| 国产欧美综合色| 一区二区在线观看免费视频播放| 午夜亚洲福利老司机| 韩国av一区二区三区| 成人午夜电影小说| 91成人网在线| 精品剧情v国产在线观看在线| 国产免费观看久久| 亚洲在线视频免费观看| 久久福利视频一区二区| www.亚洲色图| 91精品黄色片免费大全| 国产日韩欧美在线一区| 亚洲一区二区精品久久av| 久久99精品久久久久| 91天堂素人约啪| 欧美一卡二卡在线观看| 国产精品每日更新在线播放网址| 亚洲一区二区三区在线播放| 国产综合久久久久久久久久久久| 91欧美一区二区| 欧美电视剧在线观看完整版| 亚洲精品高清在线观看| 国产一区二区福利| 欧美精品日日鲁夜夜添| 国产精品久久久久久久久晋中 | 免费亚洲电影在线| 成人国产在线观看| 日韩欧美国产一区在线观看| 亚洲色图清纯唯美| 激情都市一区二区| 欧美肥妇free| 一区二区三区在线影院| 国产二区国产一区在线观看| 911精品国产一区二区在线| 中文字幕免费一区| 国产一区二区在线观看免费| 911精品产国品一二三产区| 玉足女爽爽91| 一本高清dvd不卡在线观看| 日韩精品一区二区三区蜜臀| 亚洲一区二区在线视频| 91香蕉视频mp4| 中文字幕不卡一区| 国产精品一级在线| 欧美成人vps| 美美哒免费高清在线观看视频一区二区| 99vv1com这只有精品| 中文字幕一区日韩精品欧美| 国产精品一区二区不卡| 欧美mv和日韩mv国产网站| 丝袜脚交一区二区| 777色狠狠一区二区三区| 亚洲午夜一二三区视频| 在线免费观看视频一区| 一区二区三区精品视频在线| 色综合久久88色综合天天| 亚洲欧洲无码一区二区三区| www.综合网.com| 亚洲欧美日韩电影| 欧美亚洲动漫另类| 亚洲地区一二三色| 欧美一区二区三区在线观看视频 | 国产色一区二区| 国产精品一区二区在线观看网站| 欧美刺激脚交jootjob| 麻豆精品视频在线观看免费 | 中文字幕久久午夜不卡| 成人免费不卡视频| 亚洲综合精品久久| 精品视频一区三区九区| 日韩va欧美va亚洲va久久| 精品少妇一区二区三区免费观看| 国产在线精品一区二区| 国产精品久久久一本精品| 91理论电影在线观看| 亚洲一区二区免费视频| 日韩精品最新网址| 丁香婷婷综合色啪| 夜夜嗨av一区二区三区四季av | 亚洲人成小说网站色在线| 日本韩国一区二区| 日韩av在线免费观看不卡| 久久精品一区四区| 色综合中文综合网| 精品一区二区av| 中文字幕电影一区| 欧美色综合影院| 精品一区二区三区视频在线观看| 国产精品久久看| 欧美日本不卡视频| 韩国av一区二区三区四区 | 3d成人动漫网站| 国产成人精品www牛牛影视| 亚洲国产综合视频在线观看| 精品卡一卡二卡三卡四在线| 91黄色免费网站| 国产呦精品一区二区三区网站| 亚洲视频综合在线| 日韩视频一区二区三区在线播放 | 日韩午夜激情av| 99国产精品久久久| 国产资源在线一区| 午夜精品视频在线观看| 国产精品精品国产色婷婷| 91精品国产综合久久久久久漫画| 不卡视频一二三| 国产一区二区影院| 免费高清视频精品| 亚洲国产日韩a在线播放性色| 欧美激情一区不卡| 精品国产第一区二区三区观看体验| 一本大道久久a久久综合| 高清日韩电视剧大全免费| 精品一区二区免费在线观看| 午夜日韩在线电影| 亚洲亚洲人成综合网络| 亚洲你懂的在线视频| 国产精品你懂的在线| wwwwww.欧美系列| 欧美xxxxxxxx| 欧美一级久久久久久久大片| 欧美午夜电影网| 日本伦理一区二区| 波波电影院一区二区三区| 国产乱妇无码大片在线观看| 九九精品一区二区| 奇米影视一区二区三区小说| 日韩精品乱码免费| 婷婷六月综合网| 午夜精品福利一区二区三区av | 中文字幕国产精品一区二区| 国产亚洲欧美日韩俺去了| 精品999在线播放| 久久久综合激的五月天| 久久影音资源网| 久久久久国产精品麻豆ai换脸 | 欧美日韩视频在线一区二区| 91在线观看一区二区| 99re亚洲国产精品| 91在线码无精品| 色婷婷久久综合| 在线视频你懂得一区| 欧美日韩在线不卡| 91精品国产全国免费观看| 91精品国产综合久久久久久| 欧美一区二区三区啪啪| www国产精品av| 欧美激情综合在线| 亚洲欧洲日韩在线| 亚洲r级在线视频| 蜜臀av性久久久久蜜臀av麻豆| 精品一区二区三区香蕉蜜桃| 粉嫩一区二区三区性色av| gogo大胆日本视频一区| 欧美视频在线播放| 26uuu成人网一区二区三区| 国产精品传媒入口麻豆| 亚洲成av人在线观看| 麻豆国产精品一区二区三区| 福利一区二区在线观看| 欧美日韩中文精品| 精品三级在线观看| 亚洲同性同志一二三专区| 日韩精品视频网| 国产成人精品午夜视频免费 | 精品久久国产字幕高潮| 中文字幕av一区二区三区高| 亚洲综合成人在线视频| 精品一区二区三区在线视频| a美女胸又www黄视频久久| 制服丝袜中文字幕亚洲| 欧美国产乱子伦 | 日韩和的一区二区| 国产99久久久国产精品潘金| 欧美另类变人与禽xxxxx| 中文字幕中文字幕中文字幕亚洲无线 | 激情五月婷婷综合| 99久久99久久久精品齐齐| 日韩精品一区二区三区四区 | 精品99一区二区| 亚洲地区一二三色| a美女胸又www黄视频久久| 欧美电影精品一区二区|