IDEA 集成 Docker 插件一键部署 Spring Boot 应用

🚀 作者主页: 有来技术

🔥 开源项目: youlai-mall 🍃 vue3-element-admin 🍃 youlai-boot

🌺 仓库主页: Gitee 💫 Github 💫 GitCode

💖 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请纠正!

前言

随着容器化技术的崛起,Docker成为了现代软件开发的关键工具。在Java开发中,Spring Boot是一款备受青睐的框架,然而,将其快速部署到Docker容器中一直是个挑战。本文将介绍一种简便的方法,通过IDEA集成Docker插件,实现Spring Boot应用的一键部署,为开发者提供更便捷的开发和部署体验。

本文项目源码:youlai-boot

IDEA 安装 Docker 插件

IDEA菜单栏File → Settings → Plugins 插件市场搜索 Docker 安装并重启IDEA

配置 Docker 远程服务器

IDEA菜单栏File → Settings → Build,Execution,Deployment → Docker 配置远程服务器的连接信息

第4步添加远程服务器通过 SSH 方式连接,只要输入目标服务器主机名、用户名和密码,测试连接成功即可。

编写 DockerFile

在项目根目录下创建一个名为 Dockerfile 的文件,以构建 Docker 镜像。

youlai-boot 项目为例,以下是一个针对 Spring Boot 单体应用的配置示例:

dockerfile 复制代码
# 基础镜像
FROM openjdk:17-jdk-alpine

# 维护者信息
MAINTAINER youlai <youlaitech@163.com>

# 设置国内镜像源(中国科技大学镜像源),修改容器时区(alpine镜像需安装tzdata来设置时区),安装字体库(验证码)
RUN echo -e https://mirrors.ustc.edu.cn/alpine/v3.7/main/ > /etc/apk/repositories  \
    && apk --no-cache add tzdata && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone \
    && apk --no-cache add ttf-dejavu fontconfig 

# 在运行时自动挂载 /tmp 目录为匿名卷,提高可移植性
VOLUME /tmp

# 将构建的 Spring Boot 可执行 JAR 复制到容器中,重命名为 app.jar
ADD target/youlai-boot.jar app.jar

# 指定容器启动时执行的命令
CMD java \
    -Djava.security.egd=file:/dev/./urandom \
    -jar /app.jar

# 暴露容器的端口
EXPOSE 8989

SpringBoot 部署配置

IDEA 顶部打开 Edit Configurations 打开 Run/Debug Configurations 界面

选择 Dockerfile

外链图片转存中...(img-MbyquFc0-1700241589122)

项目部署配置

SpringBoot 项目部署

部署配置完成之后,选择配置点击启动将会自动完成: 项目编译 + 打包 + 制作Docker 镜像 + 推送镜像至远程服务器 + 启动容器应用

启动成功

访问 http://ip:port/doc.html 接口文档测试部署是否成功。

结语

容器化技术的普及为开发者提供了更高效、一致的部署方式。通过本文介绍的方法,我们期望能帮助开发者更轻松地在IDEA中实现Spring Boot应用的Docker化部署,为现代软件开发提供更便捷的解决方案。

相关推荐
风流倜傥唐伯虎13 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
fuquxiaoguang14 小时前
深入浅出:使用MDC构建SpringBoot全链路请求追踪系统
java·spring boot·后端·调用链分析
lpruoyu14 小时前
【Docker进阶-03】存储原理
docker·容器
毕设源码_廖学姐14 小时前
计算机毕业设计springboot招聘系统网站 基于SpringBoot的在线人才对接平台 SpringBoot驱动的智能求职与招聘服务网
spring boot·后端·课程设计
顾北1215 小时前
MCP服务端开发:图片搜索助力旅游计划
java·spring boot·dubbo
文静小土豆15 小时前
Docker 与 containerd 代理配置详解:镜像拉取速度慢的终极解决方案
运维·docker·容器
昀贝15 小时前
IDEA启动SpringBoot项目时报错:命令行过长
java·spring boot·intellij-idea
indexsunny16 小时前
互联网大厂Java面试实战:Spring Boot微服务在电商场景中的应用与挑战
java·spring boot·redis·微服务·kafka·spring security·电商
JY.yuyu17 小时前
Docker常用命令——数据卷管理 / 端口映射 / 容器互联
运维·docker·容器
Coder_Boy_17 小时前
基于SpringAI的在线考试系统-相关技术栈(分布式场景下事件机制)
java·spring boot·分布式·ddd