尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
docker部署ruoyi项目
目录前言一、安装docker1.1环境1.2安装docker1.3配置镜像加速器二、获取ruoyi项目2.1拉取ruoyi项目2.2创建ruoyi-net网络三、MySQL3.1创建MySQL数据卷3.2运行MySQL并挂载数据卷四、redis4.1 创建Redis数据卷4.2运行Redis并挂载数据卷五、准备jar包5.1mvn镜像5.2修该配置5.3打包jar包5.4放置jar包六、构建镜像6.1编写Dockerfile6.2构建镜像6.3验证镜像七、前端部署7.1下载node7.2打包前端代码7.3创建运行nginx7.4检查ruoyi服务总结前言本文是一份详细的 Docker 化部署指南旨在帮助开发者将若依RuoYi前后端分离项目快速、一致地部署到生产或测试环境。通过容器化技术我们能够有效解决环境差异、依赖冲突等传统部署难题实现一键式部署与运维。教程将涵盖从 Docker 环境准备、项目获取、数据库与缓存服务部署到后端 Java 应用打包构建、前端静态资源打包以及最终通过 Nginx 提供服务的完整流程。每个步骤都配有清晰的命令和截图确保您可以跟随操作顺利完成部署。一、安装docker1.1环境centoOS7.9主机IP192.168.1.1111.2安装dockersudo yum install -y yum-utils yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo sudo yum install docker-ce-20.10.18 docker-ce-cli-20.10.18 containerd.io systemctl start docker docker version1.3配置镜像加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [ https://0a40cefd360026b40f39c00627fa6f20.mirror.swr.myhuaweicloud.com, https://registry.cn-hangzhou.aliyuncs.com ] } EOF sudo systemctl daemon-reload sudo systemctl restart dockerdocker info验证二、获取ruoyi项目2.1拉取ruoyi项目git clone https://gitee.com/humajun/ruoyi.git2.2创建ruoyi-net网络docker network create ruoyi-net docker network ls三、MySQL3.1创建MySQL数据卷docker volume create mysql-data docker volume inspect mysql-data3.2运行MySQL并挂载数据卷docker run -d \ --name mysql.server \ --hostname db \ --network ruoyi-net \ -e MYSQL_ROOT_PASSWORD123456 \ -e MYSQL_DATABASEry-vue \ -e LANGC.UTF-8 \ -e LC_ALLC.UTF-8 \ -v /opt/mysql-data:/var/lib/mysql \ -v /opt/ruoyi/sql:/docker-entrypoint-initdb.d \ mysql:5.7 \ --character-set-serverutf8mb4 \ --collation-serverutf8mb4_general_ci验证卷挂载docker inspect mysql.server | grep -A 10 Mounts四、redis4.1 创建Redis数据卷docker volume create redis-data4.2运行Redis并挂载数据卷docker run -d \ --name redis-server \ --network ruoyi-net \ -p 6379:6379 \ -v redis-data:/data \ redis redis-server --appendonly yes查看docker ps | grep redis.server五、准备jar包5.1mvn镜像#拉取maven镜像 docker pull maven:3.6.3-openjdk-11 #宿主机提前创建目录假设源码放在 /opt/ruoyi/RuoYi-Vue mkdir -p /opt/ruoyi/java5.2修该配置cd ruoyi/ruoyi-admin/src/main/resources/cd ruoyi/ruoyi-admin/src/main/resources/ vim application-druid.yml vim application.yml修该redis地址修该mysql地址5.3打包jar包# 启动maven容器挂载宿主机源码目录到容器 /vue docker run -it --rm \ -v /opt/ruoyi:/vue \ maven:3.6.3-openjdk-11 /bin/bash #进入项目根目录 cd /vue maven打包跳过测试加快编译 mvn package -DskipTests #退出容器 exit成功如下5.4放置jar包退出maven容器将/opt/ruoyi/ruoyi-admin/target/ruoyi-admin.jar移到/ruoyi/java下cd /opt/ruoyi/ruoyi-admin/target/ mv ruoyi-admin.jar /opt/ruoyi/java/六、构建镜像6.1编写Dockerfilevim Dockerfile内容# 使用 OpenJDK 8 镜像 FROM eclipse-temurin:8-jre #设置时区 RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime echo Asia/Shanghai /etc/timezone #设置容器内的工作目录为 /opt WORKDIR /opt #把当前目录下的 ruoyi-admin.jar 拷贝到容器的 /opt 目录 COPY ./ruoyi-admin.jar /opt #容器启动时执行的命令 CMD [ java,-jar,ruoyi-admin.jar ]6.2构建镜像docker build -t ruoyi-admin:1.0 .docker images | grep ruoyi-admin6.3验证镜像docker run -d \ --name java.server \ --network ruoyi-net \ -p 8080:8080 \ -e SPRING_DATASOURCE_URLjdbc:mysql://mysql.server:3306/ry-vue \ ruoyi-admin:1.0查看启动日志docker logs -f java.server七、前端部署7.1下载nodedocker pull node:127.2打包前端代码docker run -it --rm \ -v /opt/ruoyi/ruoyi-ui:/opt \ -w /opt \ node:12 \ /bin/bash -c npm install npm run build:prod # 确认产物 ls -la /opt/ruoyi/ruoyi-ui/dist/安装成功显示dist产生成功显示产物位置及dist内容7.3nginx在/opt/ruoyi/java目录下编辑nginx.conf内容user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid; include /usr/share/nginx/modules/*.conf; events { worker_connections 1024; } http { log_format main $remote_addr - $remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for; access_log /var/log/nginx/access.log main; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 4096; include /etc/nginx/mime.types; default_type application/octet-stream; server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html; try_files $uri $uri/ /index.html; } location /prod-api/ { proxy_pass http://java.server:8080/; } } }创建运行nginxdocker run -d \ --name ruoyi-web \ --hostname ruoyi-web \ --network ruoyi-net \ -p 8888:80 \ -e LANGC.UTF-8 \ -e LC_ALLC.UTF-8 \ -v /opt/ruoyi/ruoyi-ui/dist:/usr/share/nginx/html \ -v /opt/ruoyi/java/nginx.conf:/etc/nginx/nginx.conf:ro \ nginx:1.25.3查看docker ps | grep ruoyi-web7.4检查ruoyi服务docker ps浏览器访问http://192.168.1.111:8888总结至此我们已经完成了 RuoYi 项目基于 Docker 的完整部署流程。回顾整个过程我们主要完成了以下几项核心工作环境标准化通过 Docker 统一了运行环境避免了因系统差异导致的部署问题。服务容器化将 MySQL、Redis、后端 Java 应用和前端 Nginx 服务分别容器化实现了服务的隔离与便捷管理。数据持久化为数据库和缓存服务配置了数据卷确保了容器重启后数据不丢失。网络互联创建了自定义的 Docker 网络使得各个服务容器能够在隔离的网络中相互通信。自动化构建利用 Maven 和 Node.js 的官方镜像在容器内完成了前后端代码的编译与打包保证了构建环境的一致性。后续优化建议可以考虑使用 Docker Compose 来编排所有服务通过一个docker-compose.yml文件实现一键启动和停止。为生产环境配置更完善的日志收集、监控告警和健康检查机制。结合 CI/CD 流水线实现代码提交后自动构建镜像并部署。希望这份指南能帮助您顺利部署 RuoYi 项目。如果在实践过程中遇到任何问题欢迎在评论区交流探讨。
RELATED

相关推荐

阁子纯净版小说阅读器:书源管理与实时更新技术解析

阁子纯净版小说阅读器:书源管理与实时更新技术解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/5 6:11:47
预实验工程(Pre-Experiment Engineering)——先用证据判断方向,再投入正式研究

预实验工程(Pre-Experiment Engineering)——先用证据判断方向,再投入正式研究

预实验工程(Pre-Experiment Engineering) 生成看似合理的候选想法正在变得容易,然而获得可靠证据依然困难。 预实验工程关心的是怎样在正式投入之前,让候选方向先接受一次检查与测试。 过去,一个研究团队通常要经过长期…

📅 2026/10/8 3:57:27
【Agent】11. 自定义规划多智能体系统案例分析

【Agent】11. 自定义规划多智能体系统案例分析

1. 案例目标本案例旨在展示如何使用LlamaIndex构建一个具有规划能力的多智能体系统,该系统能够自动编写、优化和执行计划,以生成高质量的报告。通过这个案例,用户将了解如何创建多个专门的智能体(研究、写作、评审)&am…

📅 2026/10/7 23:53:08
MORE NEWS

更多资讯

📰

Markdown论文写作工具链:智能排版与文献管理实践

1. 项目概述:论文写作效率革命去年帮导师带本科生毕业论文时,我亲眼目睹了学生们在deadline前熬夜改格式、查重、调参考文献的崩溃场景。直到发现这个开源的论文写作工具链,才意识到原来90%的机械性工作都可以自动化完成。PaperRed本质上是一…

📰

开源推荐算法解析:从特征工程到部署优化

1. 开源推荐算法的行业背景与意义当一家全球顶级社交平台突然宣布公开其核心推荐算法源代码时,整个科技圈都会为之震动。这就像米其林餐厅突然公开了招牌菜的完整食谱,让业界得以窥见那些影响数十亿用户内容消费的"秘密配方"。推荐系统作为内容…

📰

Blender原点操作本质:五种模式的空间逻辑与工程避坑指南

1. 这不是“调个点”那么简单:Blender原点操作的本质与真实痛点在Blender里点几下鼠标把原点挪来挪去,看起来只是个基础操作——但如果你做过角色绑定、程序化建模、动画重定向,或者导出模型到Unity/Unreal时突然发现旋转轴歪了、缩放崩了、蒙…

📰

东北大学高数上期末核心突破:可导性判定与极值拐点辨析

简介:本资源为东北大学《高等数学(上)》历年期末考试真题汇编,面向该校及同类理工科高校本科生,专用于考前系统复习、考点查漏与解题能力强化。试卷覆盖2005—2007年三套完整试题,题型规范、难度梯度合理&a…

📰

Blender原点操作全解析:从空间逻辑到工业级精度

1. Blender中物体原点操作:为什么它比建模本身更常让我停下手来反复调试?在Blender里,我见过太多人花三小时雕一个逼真的机械臂,却在导出时发现整个模型歪着飞出去;也见过有人把角色动画做得行云流水,一绑定…

📰

2KB SRAM Arduino多任务:SCoop协作式调度实战

简介:面向Arduino开发者与单片机并发编程学习者的SCoop多线程库完整源码包,适合在资源受限的AVR等平台上组织多任务、提升程序响应与执行效率。压缩包共58个文件、约726KB,以29个ino示例、12个txt说明与变更日志、7个h头文件、7个cpp实现为主…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬