docker一键安装部署若依Ruoyi-Vue(保姆级)
前置Docker知识
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 proxylocation ~ ^/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.0container_name: ruoyi-mysqlrestart: alwaysenvironment:MYSQL_ROOT_PASSWORD: 123456MYSQL_DATABASE: ry-vueports:- "3306:3306"volumes:- ./mysql/data:/var/lib/mysql- ./mysql/conf:/etc/mysql/conf.dredis:image: redis:6.2container_name: ruoyi-redisrestart: alwaysports:- "6379:6379"ruoyi-admin:image: ruoyi-admincontainer_name: ruoyi-adminrestart: alwaysdepends_on:- mysql- redisports:- "8080:8080"ruoyi-ui:image: ruoyi-uicontainer_name: ruoyi-uirestart: alwaysdepends_on:- ruoyi-adminports:- "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地址:
完结撒花~
有问题的小伙伴欢迎在评论区留言讨论~