本文以 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 中:
-
打开右侧 Maven 面板
-
找到
ruoyi-admin -
执行 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 全自动运行!