当前位置: 首页 > news >正文

若依 - idea集成docker一键部署springboot项目(docker-compose)

本文以 RuoYi 单体项目为例,介绍如何在 IDEA 中集成 Docker,通过 Maven 一键打包生成镜像,并使用 docker-compose 在 Linux 上实现一键部署。

一、项目结构

ruoyi-admin 为主模块,目录结构如下:

ruoyi-admin├─ src├─ target├─ Dockerfile└─ pom.xml
ruoyi-common
ruoyi-framework
ruoyi-generator
ruoyi-liushu
ruoyi-quartz
ruoyi-system
pom.xml
docker-compose.yml

二、编写 Dockerfile

ruoyi-admin 目录下创建 Dockerfile

# 使用 Eclipse Temurin 作为基础镜像(AdoptOpenJDK 的延续)
FROM eclipse-temurin:8-jre# 创建并设置工作目录
RUN mkdir -p /www/wwwroot/project/liushu
WORKDIR /www/wwwroot/project/liushu# 复制打包生成的 Jar 文件到镜像中
COPY ./target/liushu.jar app.jar# 设置时区
ENV TZ=Asia/Shanghai# JVM 启动参数(可在 docker run 时覆盖)
ENV JAVA_OPTS="-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom"# 应用参数(可选)
ENV ARGS=""# 暴露后端服务端口
EXPOSE 6988# 启动命令
CMD java ${JAVA_OPTS} -jar app.jar $ARGS

💡 Tips:Eclipse Temurin 是 AdoptOpenJDK 的延伸版本,更加稳定可靠。

三、配置 Maven 构建 Docker 镜像

ruoyi-admin/pom.xml 中添加插件:

<plugin><groupId>com.spotify</groupId><artifactId>docker-maven-plugin</artifactId><version>1.2.2</version><configuration><!-- 镜像名称 --><imageName>liushu</imageName><!-- Dockerfile 路径 --><dockerDirectory>${project.basedir}</dockerDirectory><!-- Docker 远程连接地址(本地或服务器) --><dockerHost>http://ip:2375</dockerHost><!-- 将 Jar 包复制到构建上下文 --><resources><resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include></resource></resources></configuration><!-- 绑定到 Maven 的 package 阶段 --><executions><execution><id>build-image</id><phase>package</phase><goals><goal>build</goal></goals></execution></executions>
</plugin>

四、编写docker-compose

在最外层pom.xml目录下上创建 docker-compose.yml

version: "3.8"services:# 后端服务liushu:image: liushu:latestcontainer_name: liushuports:- "6988:6988"environment:# JVM 参数,可覆盖 Dockerfile 中的 JAVA_OPTSJAVA_OPTS: "-Xms512m -Xmx512m"# Spring Boot 配置,可以覆盖 spring.redis.hostSPRING_REDIS_HOST: redisSPRING_REDIS_PORT: 6379SPRING_REDIS_DATABASE: 0depends_on:- redisrestart: always# Redis 服务redis:image: redis:7.2-alpinecontainer_name: redisports:- "6380:6379" # 改为宿主机6380映射容器6379volumes:- redis_data:/datarestart: always# 数据卷,用于持久化 Redis 数据
volumes:redis_data:

✅ 配置说明

说明
depends_on确保 Redis 先启动
SPRING_REDIS_HOST使用容器名 redis
redis_data持久化 Redis 数据
restart: always容器异常退出自动重启

五、IDEA 一键构建镜像

在 IDEA 中:

  1. 打开右侧 Maven 面板

  2. 找到 ruoyi-admin

  3. 执行 clean → package

执行完成后,在 IDEA 的 Docker 面板 中即可看到 liushu 镜像。

六、在 Linux 上一键部署

docker-compose.yml 上传到服务器后执行:

# 启动所有服务
docker-compose up -d# 查看容器状态
docker ps# 查看日志
docker logs -f liushu

浏览器访问:

http://服务器IP:6988

八、总结

环节技术点说明
开发阶段IDEA + Docker 插件实现一键打包镜像
构建阶段docker-maven-plugin与 Maven package 绑定
部署阶段docker-compose管理服务启动顺序
服务依赖Redis + Spring Boot使用环境变量覆盖配置

通过以上流程,我们实现了:

开发到部署全自动化
Redis 服务自动集成
支持远程构建与服务器一键部署


💡 推荐实践

  • 可以扩展 docker-compose,加入 MySQL、Nginx 等模块;

  • 构建镜像时使用 CI/CD 工具(如 Jenkins、GitHub Actions)自动化;

  • 在服务器上配置 Nginx 反向代理,实现 HTTPS 部署。


📘 总结一句话:

从 IDEA 到 Linux,只需一条命令 docker-compose up -d,Spring Boot + Redis 全自动运行!

http://www.dtcms.com/a/524547.html

相关文章:

  • 2025 年 MathorCup 大数据建模竞赛 AB 题:高质量全方案・成品资料速取(含双代码 + 论文)
  • 为什么 idea 建议去掉 StringBuilder,使用“+”拼接字符串
  • 2025年数字人语音合成师专业能力测试
  • 门户网站建设思维导图wordpress表格显示图片
  • 【案例实战】基于 AGC 云开发与元服务构建智能待办应用
  • 【第五章:计算机视觉-项目实战之推荐/广告系统】2.粗排算法-(3)理解粗排模型之在线部分:在线架构及对双塔的应用
  • Spring Boot 起步:自动装配的魔法
  • 嵌入式软件架构--显示界面2(呼叫界面,密码界面)
  • 购物网站制作怎么做wordpress移动自媒体
  • 酒店网站做的比较好的钓鱼网站的制作教程
  • 从理论到实战:生成对抗网络(GAN)在图像生成中的关键技巧与完整代码剖析
  • 在K8S中部署MySQL主从
  • go strconv包介绍
  • 论文阅读12——基于学习的具有扩散行为的人流量预测方法
  • 对于随机变量x1, …, xn,其和的范数平方的期望不超过n倍各随机变量范数平方的期望之和
  • ARM《3》_学习c和汇编的混合编程
  • 硬件工程师11月实战项目-10G高速数字示波器开发
  • FPGA Debug:Vivado程序综合卡在了Run Synthesis
  • 免费网站建设推广服务什么样的公司愿意做网站
  • 世隆科技:无人船——开启水上智能作业新时代
  • 网站后台模板关联自己做的网站电商网站楼层 设计
  • 【北京迅为】iTOP-4412精英版使用手册-第六十八章 U-boot基础知识
  • 关于函数调用其实是函数指针+传参+解引用的一些思考
  • 奇缦科技珠海网站建设优化网站地图样本
  • 【设计模式】组合模式(Composite)
  • 【论文精读】Matten:融合 Mamba 与 Attention 的视频生成新范式
  • HTB Networked writeup(network-scripts提权)
  • 如何入门python机器学习?金融从业人员如何快速学习Python、机器学习?机器学习、数据科学如何进阶成为大神?
  • 网站开发技术交流中国国家培训网
  • 网站无法做301重定向网站查询域名入口