一步步教你把SpringBoot項(xiàng)目打包成Docker鏡像
把SpringBoot項(xiàng)目打包成Docker鏡像有兩種方案:
全自動(dòng)化:先打好docker鏡像倉(cāng)庫(kù),然后在項(xiàng)目的maven配置中配置好倉(cāng)庫(kù)的地址,在項(xiàng)目里配置好Dockerfile文件,這樣可以直接在idea中打包好后自動(dòng)上傳到鏡像倉(cāng)庫(kù),然后去服務(wù)器上啟動(dòng)這個(gè)鏡像就行了。
半自動(dòng)化:半自動(dòng)化又有兩種方案,一種是Dockerfile文件放在項(xiàng)目里面,一種是放在項(xiàng)目外面。
- 放在項(xiàng)目里面:springboot pom.xml中配置maven插件支持,打包時(shí)會(huì)使用項(xiàng)目里面的dockerfile,如果沒(méi)配置插件支持會(huì)報(bào)錯(cuò)找不到dockerfile文件
- 放在項(xiàng)目外面:springboot還是打包成普通的jar,然后把這個(gè)jar上傳到服務(wù)器,同時(shí)在服務(wù)器創(chuàng)建一個(gè)Dockerfile文件,執(zhí)行docker build命令,把這個(gè)jar構(gòu)建成一個(gè)docker鏡像,然后通過(guò)鏡像執(zhí)行。
一般來(lái)說(shuō)用半自動(dòng)化比全自動(dòng)化用的多,本文用的算是半自動(dòng)化方式的第二種,總體來(lái)說(shuō)有一下幾個(gè)步驟:
1. 構(gòu)建SpringBoot項(xiàng)目
編寫(xiě)一個(gè)controller
進(jìn)行本地測(cè)試
2. 打包應(yīng)用
點(diǎn)擊package將項(xiàng)目進(jìn)行打包
打包成功
cmd運(yùn)行java -jar能夠運(yùn)行成功
可以下載個(gè)Docker插件
3. 編寫(xiě)dockerfile
在target里面創(chuàng)建Dockerfile文件,此時(shí)Dockerfile文件是高亮的
Dockerfile配置內(nèi)容(在Idea里面寫(xiě)Dockerfile會(huì)有提示)
#發(fā)布到網(wǎng)上時(shí)只會(huì)把jar包和Dockerfile發(fā)布上去 COPY *.jar /app.jar #地址映射 CMD ["--server.port=8080"] #對(duì)外暴露端口 EXPOSE 8080 #執(zhí)行命令 ENTRYPOINT ["java","-jar","/app.jar"]
4. 構(gòu)建鏡像
將jar包和Dockerfile文件拿出來(lái)新建個(gè)文件夾放里面,按住shift鍵打開(kāi)PowerShell
(注意:本人電腦上安裝的是Docker Desktop)
輸入命令構(gòu)建鏡像,firstdocker是鏡像名(最后的 . 表示 Dockerfile 文件在當(dāng)前目錄下)
查看構(gòu)建好的鏡像(不清楚命令的可以先學(xué)一下基礎(chǔ)命令)
鏡像構(gòu)建成功后運(yùn)行容器(第一個(gè)為服務(wù)器8080端口,第二個(gè)8080為docker容器端口)
可以看容器是否在運(yùn)行和日志信息
訪問(wèn)成功
5. 發(fā)布運(yùn)行
可以將鏡像上傳到dockerhub,以后使用Docker之后,給別人交付的就是一個(gè)鏡像即可!
總結(jié)
到此這篇關(guān)于把SpringBoot項(xiàng)目打包成Docker鏡像的文章就介紹到這了,更多相關(guān)SpringBoot項(xiàng)目打包Docker鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot打包成Docker鏡像的幾種實(shí)現(xiàn)方式
- springboot整合docker部署實(shí)現(xiàn)兩種構(gòu)建Docker鏡像方式
- Java(SpringBoot)項(xiàng)目打包(構(gòu)建)成Docker鏡像的幾種常見(jiàn)方式
- Springboot打包為Docker鏡像并部署的實(shí)現(xiàn)
- springboot項(xiàng)目打docker鏡像實(shí)例(入門(mén)級(jí))
- SpringBoot打包docker鏡像發(fā)布的詳細(xì)步驟
- 將Java(SpringBoot)項(xiàng)目打包為Docker鏡像的三種方法
相關(guān)文章
詳解Spring Cache使用Redisson分布式鎖解決緩存擊穿問(wèn)題
本文主要介紹了詳解Spring Cache使用Redisson分布式鎖解決緩存擊穿問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04SpringBoot的配置文件application.yml及加載順序詳解
這篇文章主要介紹了SpringBoot的配置文件application.yml及加載順序,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07RocketMQ中消費(fèi)者概念和消費(fèi)流程詳解
這篇文章主要介紹了RocketMQ中消費(fèi)者概念和消費(fèi)流程詳解,RocketMQ是一款高性能、高可靠性的分布式消息中間件,消費(fèi)者是RocketMQ中的重要組成部分,消費(fèi)者負(fù)責(zé)從消息隊(duì)列中獲取消息并進(jìn)行處理,需要的朋友可以參考下2023-10-10SpringBoot攔截器實(shí)現(xiàn)對(duì)404和500等錯(cuò)誤的攔截
本篇文章主要介紹了SpringBoot攔截器實(shí)現(xiàn)對(duì)404和500等錯(cuò)誤的攔截,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04SSH框架網(wǎng)上商城項(xiàng)目第28戰(zhàn)之使用Ajax技術(shù)局部更新商品數(shù)量和總價(jià)
這篇文章主要為大家詳細(xì)介紹了SSH框架網(wǎng)上商城項(xiàng)目第28戰(zhàn)之使用Ajax技術(shù)局部更新商品數(shù)量和總價(jià),感興趣的小伙伴們可以參考一下2016-06-06java配置變量的解釋,搬運(yùn)他人優(yōu)質(zhì)評(píng)論(推薦)
這篇文章主要介紹了java配置變量,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Spring Cloud Gateway重試機(jī)制的實(shí)現(xiàn)
這篇文章主要介紹了Spring Cloud Gateway重試機(jī)制的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03springboot定時(shí)任務(wù)SchedulingConfigurer異步多線程實(shí)現(xiàn)方式
這篇文章主要介紹了springboot定時(shí)任務(wù)SchedulingConfigurer異步多線程實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04