真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網站制作重慶分公司

SpringBootDocker打包工具小結

目錄

創(chuàng)新互聯(lián)公司主要從事成都網站建設、做網站、網頁設計、企業(yè)做網站、公司建網站等業(yè)務。立足成都服務阜新,十年網站建設經驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18982081108

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

Spring Boot Docker

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

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

根據(jù)上面的命令編寫一個能夠適應多環(huán)境的Dockerfile:

# 引入 openjdk 鏡像 FROM adoptopenjdk/openjdk8 # 聲明作者 LABEL AUTHOR=felord OG=felord.cn # 掛載幾個有用的文件夾 比如日志 VOLUME ["/tmp","/logs"] # 聲明一個環(huán)境參數(shù)用來動態(tài)啟用配置文件 默認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 來動態(tài)的改變環(huán)境。單純的編寫Dockerfile不方便我們DevOps。

docker 鏡像生命周期

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

spring-boot-maven-plugin

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

org.springframework.boot spring-boot-maven-plugin docker.repo.com/library/${project.artifactId}:${project.version} true user secret https://docker.repo.com/v1/ user@example.com

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

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

Spotify Maven Plugin

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

com.spotify dockerfile-maven-plugin 1.4.8 repo.com/${project.artifactId}

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

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

Jib Maven Plugin

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

com.google.cloud.tools jib-maven-plugin 3.0.0 adoptopenjdk/openjdk8 docker.repo.com/library/${project.artifactId} felord xxxxxx ${project.version} target/${project.artifactId}-${project.version}.jar *.jar /app.jar packaged /tmp,/logs 8080 dev java,-Djava.security.egd=file:/dev/./urandom,-Dspring.profiles.active=${active},-jar,/app.jar USE_CURRENT_TIMESTAMP

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

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


文章標題:SpringBootDocker打包工具小結
URL分享:http://weahome.cn/article/ehgdsc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部