若依 - 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 中:
-
打开右侧 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 全自动运行!
