一步步教你把SpringBoot項(xiàng)目打包成Docker鏡像
把SpringBoot項(xiàng)目打包成Docker鏡像有兩種方案:
全自動(dòng)化:先打好docker鏡像倉庫,然后在項(xiàng)目的maven配置中配置好倉庫的地址,在項(xiàng)目里配置好Dockerfile文件,這樣可以直接在idea中打包好后自動(dòng)上傳到鏡像倉庫,然后去服務(wù)器上啟動(dòng)這個(gè)鏡像就行了。
半自動(dòng)化:半自動(dòng)化又有兩種方案,一種是Dockerfile文件放在項(xiàng)目里面,一種是放在項(xiàng)目外面。
- 放在項(xiàng)目里面:springboot pom.xml中配置maven插件支持,打包時(shí)會(huì)使用項(xiàng)目里面的dockerfile,如果沒配置插件支持會(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鏡像,然后通過鏡像執(zhí)行。
一般來說用半自動(dòng)化比全自動(dòng)化用的多,本文用的算是半自動(dòng)化方式的第二種,總體來說有一下幾個(gè)步驟:
1. 構(gòu)建SpringBoot項(xiàng)目


編寫一個(gè)controller

進(jìn)行本地測試

2. 打包應(yīng)用
點(diǎn)擊package將項(xiàng)目進(jìn)行打包

打包成功

cmd運(yùn)行java -jar能夠運(yùn)行成功

可以下載個(gè)Docker插件

3. 編寫dockerfile
在target里面創(chuàng)建Dockerfile文件,此時(shí)Dockerfile文件是高亮的

Dockerfile配置內(nèi)容(在Idea里面寫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文件拿出來新建個(gè)文件夾放里面,按住shift鍵打開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)行和日志信息

訪問成功

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鏡像的最佳方式
- SpringBoot項(xiàng)目docker分層鏡像構(gòu)建案例
- SpringBoot Docker鏡像分層的優(yōu)化指南
- SpringBoot制作Docker鏡像接入SkyWalking的詳細(xì)過程
- Docker自定義鏡像的實(shí)現(xiàn)步驟(SpringBoot程序?yàn)槔?
- Docker打包SpringBoot鏡像的實(shí)現(xiàn)方式
- SpringBoot打包成Docker鏡像的項(xiàng)目實(shí)踐
- SpringBoot打包成Docker鏡像的幾種實(shí)現(xiàn)方式
- SpringBoot打包docker鏡像發(fā)布的詳細(xì)步驟
- SpringBoot構(gòu)建Docker鏡像的實(shí)現(xiàn)步驟
相關(guān)文章
SpringBoot基于Swagger2構(gòu)建API文檔過程解析
這篇文章主要介紹了SpringBoot基于Swagger2構(gòu)建API文檔過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Spring中 @Value注解設(shè)置默認(rèn)值的多種方式
在Spring框架中,@Value注解是一個(gè)非常有用的特性,它允許你將外部的值動(dòng)態(tài)地注入到你的bean屬性中,這對(duì)于配置數(shù)據(jù)庫連接信息、服務(wù)URL、以及其他需要在運(yùn)行時(shí)動(dòng)態(tài)改變的設(shè)置非常有用,本文給大家介紹Spring中@Value注解設(shè)置默認(rèn)值的多種方式,感興趣的朋友一起看看吧2025-09-09
SpringBoot 如何使用 JWT 保護(hù) Rest Api&nbs
使用spring-boot開發(fā)RESTful API非常的方便,在生產(chǎn)環(huán)境中,對(duì)發(fā)布的 API 增加授權(quán)保護(hù)是非常必要的,現(xiàn)在我們來看如何利用JWT技術(shù)為API 增加授權(quán)保護(hù),保證只有獲得授權(quán)的用戶才能夠訪問 API,感興趣的朋友跟隨小編一起看看吧2024-02-02
SpringBoot使用Shiro實(shí)現(xiàn)動(dòng)態(tài)加載權(quán)限詳解流程
本文小編將基于?SpringBoot?集成?Shiro?實(shí)現(xiàn)動(dòng)態(tài)uri權(quán)限,由前端vue在頁面配置uri,Java后端動(dòng)態(tài)刷新權(quán)限,不用重啟項(xiàng)目,以及在頁面分配給用戶?角色?、?按鈕?、uri?權(quán)限后,后端動(dòng)態(tài)分配權(quán)限,用戶無需在頁面重新登錄才能獲取最新權(quán)限,一切權(quán)限動(dòng)態(tài)加載,靈活配置2022-07-07

