IDEA 配合 Dockerfile 部署 SpringBoot 工程的注意事項(xiàng)
準(zhǔn)備 SpringBoot 工程
1.新建 SpringBoot 項(xiàng)目,默認(rèn)的端口是 8080 ,新建 Controller 和 Mapping
@RestController
public class HelloController {
@GetMapping("hello")
public String hello() {
return "hello world!";
}
}
注意,需要在 pom 中添加 spring-boot-maven-plugin 插件,否則運(yùn)行 jar 包時(shí)會提示:沒有主清單屬性
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
啟動(dòng)項(xiàng)目,訪問 http://localhost:8080/hello 測試
2.在項(xiàng)目目錄添加 Dockerfile 文件
FROM openjdk:8-jre # ./target/demo-0.0.1-SNAPSHOT.jar 為編譯后的 jar 包位置 # jar 包的名稱要與自己配置的相同,格式為:項(xiàng)目名稱-版本號.jar COPY ./target/demo-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java","-jar"] CMD ["app.jar"]
3.Docker 遠(yuǎn)程連接配置
演示使用的 Docker 宿主機(jī)是 CentOS 7,修改配置并重啟 Docker 服務(wù)
vim /lib/systemd/system/docker.service
將 ExecStar 這行配置修改為下面這行
ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375
重啟服務(wù)
systemctl daemon-reload systemctl restart docker
可以通過訪問 API 進(jìn)行測試,IP 需要修改為宿主機(jī)對應(yīng)的 IP,端口設(shè)置的為 2375,訪問成功會顯示 Docker Engine 的相關(guān)版本信息
http://192.168.43.161:2375/version
如果是部署在公網(wǎng)或者生產(chǎn)環(huán)境,需要配置安全訪問,可以參考:Docker開啟遠(yuǎn)程安全訪問
IDEA 配置
IDEA 安裝 Docker 插件

配置 IDEA Docker 連接
在設(shè)置中可以找到 Docker,點(diǎn)擊加號可以添加新的 Docker 連接,輸入名稱、Engine API URL,然后就會提示:Connection successful,即連接成功

點(diǎn)擊 Run/Debug Configurations

輸入名稱、添加 Dockerfile(剛剛添加的那個(gè))、容器名稱、映射端口號
Before launch選擇Maven 并輸入命令:clean package -U -DskipTests,這個(gè)命令在每次編譯 Dockerfile 之前都會運(yùn)行

點(diǎn)擊運(yùn)行就會自動(dòng)打 jar 包,并在宿主機(jī)上構(gòu)建鏡像,運(yùn)行容器

可以通過 Docker 宿主機(jī)進(jìn)行測試訪問,這里演示使用的 192.168.43.161 需要替換成自己 Docker 宿主機(jī)的 IP
http://192.168.43.161:8080/hello
參考資料
Docker - 遠(yuǎn)程連接
IDEA的Docker插件實(shí)戰(zhàn)(Dockerfile篇)
到此這篇關(guān)于IDEA 配合 Dockerfile 部署 SpringBoot 工程的文章就介紹到這了,更多相關(guān)IDEA 部署 SpringBoot 工程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java 使用Calendar計(jì)算時(shí)間的示例代碼
這篇文章主要介紹了Java 使用Calendar計(jì)算時(shí)間的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Java中驗(yàn)證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法
這篇文章主要介紹了Java中驗(yàn)證 Mybatis 數(shù)據(jù)分片可以減輕GC壓力的操作方法,本文使用 Spock(可集成Spring Boot項(xiàng)目) 編寫測試用例,基于 Groovy (JVM語言),感興趣的朋友跟隨小編一起看看吧2024-12-12
Java簡單實(shí)現(xiàn)session保存到redis的方法示例
這篇文章主要介紹了Java簡單實(shí)現(xiàn)session保存到redis的方法,結(jié)合實(shí)例形式分析了Java將session存入redis緩存服務(wù)器的相關(guān)設(shè)置、實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下2018-05-05
thymeleaf實(shí)現(xiàn)前后端數(shù)據(jù)交換的示例詳解
Thymeleaf?是一款用于渲染?XML/XHTML/HTML5?內(nèi)容的模板引擎,當(dāng)通過?Web?應(yīng)用程序訪問時(shí),Thymeleaf?會動(dòng)態(tài)地替換掉靜態(tài)內(nèi)容,使頁面動(dòng)態(tài)顯示,這篇文章主要介紹了thymeleaf實(shí)現(xiàn)前后端數(shù)據(jù)交換,需要的朋友可以參考下2022-07-07
運(yùn)行Jar包出現(xiàn)提示xxx中沒有主清單屬性報(bào)錯(cuò)問題解決方法
這篇文章主要介紹了運(yùn)行Jar包出現(xiàn):xxx中沒有主清單屬性報(bào)錯(cuò),當(dāng)出現(xiàn)報(bào)錯(cuò):xxx中沒有主清單屬性,解決方法也很簡單,在pom.xml配置中,加上相應(yīng)配置即可,需要的朋友可以參考下2023-08-08

