若依 - 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:latest
    container_name: liushu
    ports:
      - "6988:6988"
    environment:
      # JVM 参数,可覆盖 Dockerfile 中的 JAVA_OPTS
      JAVA_OPTS: "-Xms512m -Xmx512m"
      # Spring Boot 配置,可以覆盖 spring.redis.host
      SPRING_REDIS_HOST: redis
      SPRING_REDIS_PORT: 6379
      SPRING_REDIS_DATABASE: 0
    depends_on:
      - redis
    restart: always

  # Redis 服务
  redis:
    image: redis:7.2-alpine
    container_name: redis
    ports:
      - "6380:6379" # 改为宿主机6380映射容器6379
    volumes:
      - redis_data:/data
    restart: 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 全自动运行!

相关推荐
鼠鼠我捏,要死了捏3 小时前
深入解析Java GC调优:从原理到实战
java·性能优化·gc调优
Live&&learn3 小时前
Tomcat 10和Tomcat 9引入servlet的不同
java·servlet·tomcat
siriuuus3 小时前
JVM 垃圾收集器相关知识总结
java·jvm
超防局3 小时前
SQLMap 终极渗透手册(2025全功能版)
sql·web安全·1024程序员节
回忆是昨天里的海3 小时前
k8s部署容器化应用-tomcat
云原生·容器·kubernetes·1024程序员节
weixin_436525073 小时前
Windows - Maven 安装到 IDEA 配置全流程
java·maven·intellij-idea
小马哥编程3 小时前
【软考架构】架构风格:RAG知识库是属于软件八大架构风格中的哪一个,黑板架构风格 ?规则系统体系风格?
大数据·计算机网络·架构·1024程序员节
启山智软3 小时前
APS系统适合哪些行业或企业规模
java·商城开发
離離原上譜3 小时前
python-docx 安装与快速入门
python·word·python-docx·自动化办公·1024程序员节