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í)會(huì)提示:沒(méi)有主清單屬性
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
啟動(dòng)項(xiàng)目,訪(fǎng)問(wèn) http://localhost:8080/hello 測(cè)試
2.在項(xiàng)目目錄添加 Dockerfile 文件
FROM openjdk:8-jre # ./target/demo-0.0.1-SNAPSHOT.jar 為編譯后的 jar 包位置 # jar 包的名稱(chēng)要與自己配置的相同,格式為:項(xiàng)目名稱(chēng)-版本號(hào).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
可以通過(guò)訪(fǎng)問(wèn) API 進(jìn)行測(cè)試,IP 需要修改為宿主機(jī)對(duì)應(yīng)的 IP,端口設(shè)置的為 2375,訪(fǎng)問(wèn)成功會(huì)顯示 Docker Engine 的相關(guān)版本信息
http://192.168.43.161:2375/version
如果是部署在公網(wǎng)或者生產(chǎn)環(huán)境,需要配置安全訪(fǎng)問(wèn),可以參考:Docker開(kāi)啟遠(yuǎn)程安全訪(fǎng)問(wèn)
IDEA 配置
IDEA 安裝 Docker 插件
配置 IDEA Docker 連接
在設(shè)置中可以找到 Docker,點(diǎn)擊加號(hào)可以添加新的 Docker 連接,輸入名稱(chēng)、Engine API URL,然后就會(huì)提示:Connection successful,即連接成功
點(diǎn)擊 Run/Debug Configurations
輸入名稱(chēng)、添加 Dockerfile(剛剛添加的那個(gè))、容器名稱(chēng)、映射端口號(hào)
Before launch選擇Maven 并輸入命令:clean package -U -DskipTests
,這個(gè)命令在每次編譯 Dockerfile 之前都會(huì)運(yùn)行
點(diǎn)擊運(yùn)行就會(huì)自動(dòng)打 jar 包,并在宿主機(jī)上構(gòu)建鏡像,運(yùn)行容器
可以通過(guò) Docker 宿主機(jī)進(jìn)行測(cè)試訪(fǎng)問(wè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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- 從0到1構(gòu)建springboot web應(yīng)用鏡像并使用容器部署的過(guò)程
- dockerfile發(fā)布springboot項(xiàng)目實(shí)踐
- dockerfile的使用及使用dockerfile部署springboot項(xiàng)目的過(guò)程
- springboot運(yùn)行到dokcer中 dockerfile的場(chǎng)景分析
- springboot中的dockerfile使用
- 利用Dockerfile部署SpringBoot項(xiàng)目的方法
- 使用Maven和遠(yuǎn)程Docker基于Dockerfile構(gòu)建SpringBoot應(yīng)用鏡像
相關(guān)文章
完美解決Get和Post請(qǐng)求中文亂碼的問(wèn)題
下面小編就為大家?guī)?lái)一篇完美解決Get和Post請(qǐng)求中文亂碼的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05詳解如何使用Java8?Steam流對(duì)Map進(jìn)行排序
這篇文章主要給大家詳細(xì)介紹了如何使用Java8?Steam流對(duì)Map進(jìn)行排序,文中通過(guò)代碼示例講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01簡(jiǎn)析Java中的util.concurrent.Future接口
這篇文章主要介紹了簡(jiǎn)析Java中的util.concurrent.Future接口,作者把future歸結(jié)為在未來(lái)得到目標(biāo)對(duì)象的占位符,需要的朋友可以參考下2015-07-07【spring-boot】快速構(gòu)建spring-boot微框架的方法
本篇文章主要介紹了【spring-boot】快速構(gòu)建spring-boot微框架的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Java實(shí)現(xiàn)讀取163郵箱,qq郵箱的郵件內(nèi)容
這篇文章主要利用Java語(yǔ)言實(shí)現(xiàn)讀取163郵箱和qq郵箱的郵件內(nèi)容,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試2022-02-02spring?MVC實(shí)現(xiàn)簡(jiǎn)單登錄功能
這篇文章主要為大家詳細(xì)介紹了spring?MVC實(shí)現(xiàn)簡(jiǎn)單登錄功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-09-09