docker一键安装部署若依Ruoyi-Vue(保姆级)
本文详细介绍了使用Docker部署Ruoyi-Vue项目的全过程。主要内容包括:1)前期准备,分析项目所需资源(JDK8+、Redis、Nginx、MySQL)和配置文件修改;2)后端jar包和前端的打包操作;3)编写Dockerfile构建前后端镜像;4)配置docker-compose.yml文件定义MySQL、Redis、后端和前端服务;5)分步启动容器并导入数据库。文章特别强调了容器间通信
前置Docker知识
docker保姆级入门教程(3小时速通)
https://blog.csdn.net/TinpeaV/article/details/151855623?spm=1001.2014.3001.5501
1、操作前准备
ruoyi-vue源码地址:
https://gitee.com/y_project/RuoYi-Vue
下载好源码后导入到你的IDEA中
(博主这里使用的是IDEA2024版)
2、开始操作
2.1 Ruoyi-vue修改配置文件
1、将url里的ip地址(localhost)修改成:mysql
#重要的事情说三遍,重要的事情说三遍,重要的事情说三遍,因为应用和数据库不在一个容器,这里写的是docker服务名称。
url: jdbc:mysql://mysql:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
2、密码修改成你的数据库密码

tips:ruoyi的redis密码默认为空,建议设置,但是我这里是演示就不改太多
2.2 maven打包后端Jar包
有两种方式如下:
#项目内maven打包:

#ruoyi自带bat打包文件:

#打包好的jar位置:

2.3 webpack打包前端静态包
#如果你是首次打开ruoyi-ui需要先执行命令 npm install
npm install --registry=https://registry.npmmirror.com

#执行npm run build:prod打包前端包
npm run build:prod

2.4 将安装好的jar包和dist前端静态文件放入Linux服务器目录下
我这里是放到了 /home/ruoyi/projects 目录下,我将dist文件名称修改成了ruoyi-ui

2.5 编写Dockerfile制作前端和后端的镜像
#先走到存放前后端的资源目录下
cd /home/ruoyi/projects
2.5.1 制作后端镜像
#编写后端的Dockerfile文件
vim dockerfile-backend
填入以下内容,然后wq保存退出:
FROM openjdk:17-jdk-slim
COPY ruoyi-admin.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "app.jar"]
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
fontconfig \
fonts-dejavu \
&& fc-cache -fv \
&& rm -rf /var/lib/apt/lists/*
#构建后端镜像
docker build -f dockerfile-backend -t ruoyi-admin .

2.5.2 制作前端镜像
#新建nginx的配置文件,nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root /home/ruoyi/projects/ruoyi-ui;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://ruoyi-admin:8080/;
}
# springdoc proxy
location ~ ^/v3/api-docs/(.*) {
proxy_pass http://ruoyi-admin:8080/v3/api-docs/$1;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
#编写前端的Dockerfile文件
vim dockerfile-frontend
FROM nginx:1.26.0
COPY ruoyi-ui /home/ruoyi/projects/ruoyi-ui
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
#构建前端镜像
docker build -f dockerfile-frontend -t ruoyi-ui .

2.5.3 检查镜像

2.6 编写docker-compose.yml文件
vim docker-compose.yml
复制填写以下代码,wq保存退出。
version: '3.9'
services:
mysql:
image: mysql:8.0
container_name: ruoyi-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: ry-vue
ports:
- "3306:3306"
volumes:
- ./mysql/data:/var/lib/mysql
- ./mysql/conf:/etc/mysql/conf.d
redis:
image: redis:6.2
container_name: ruoyi-redis
restart: always
ports:
- "6379:6379"
ruoyi-admin:
image: ruoyi-admin
container_name: ruoyi-admin
restart: always
depends_on:
- mysql
- redis
ports:
- "8080:8080"
ruoyi-ui:
image: ruoyi-ui
container_name: ruoyi-ui
restart: always
depends_on:
- ruoyi-admin
ports:
- "80:80"
2.7 使用compose命令,先启动mysql容器导入数据库
因为是第一次启动,一下子看到效果建议先启动mysql导入数据先。
docker compose up -d mysql

使用的数据库连接工具先连上mysql,导入ruoyi的数据库

2.8 使用compose命令,直接启动ruoyi-vue
截止到目前,你的linux目录下,应该有以下这些文件:

因为只有一个docker-compose文件,所以直接使用命令docker compose up -d启动
docker compose up -d

查看是否都启动成功:

激动人心的时刻到了,访问你的ip地址:


完结撒花~
有问题的小伙伴欢迎在评论区留言讨论~
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐

所有评论(0)