当前位置: 首页 > news >正文

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地址:

完结撒花~

有问题的小伙伴欢迎在评论区留言讨论~

http://www.dtcms.com/a/395104.html

相关文章:

  • 通义DeepResearch论文六连发全面解读
  • 大模型应用-prompt提示词工程
  • Windows 命令行:使用路径名和文件名来启动文件
  • 稻瘟病监测仪的功能用途
  • 仿照豆包实现 Prompt 变量模板输入框
  • 如何安装 SQLPro Studio for Mac?v2024.21.dmg 文件安装步骤详解(附安装包)
  • 扣子空间:字节跳动推出的AI Agent 智能体平台
  • 编程基础:表驱动
  • 内网穿透的应用-RemoteJVMDebug+cpolar:内网服务器调试的无界解决方案
  • 如何将PPT每一页批量导出为高清JPG图片?一文讲清操作流程
  • 高防服务器如何实现安全防护?ddos攻击会暴露ip吗?
  • linux硬盘分区管理
  • spring boot实现MCP服务器,及其cursor测试使用的方法
  • web前端开发与服务器通信的技术变迁历程
  • 市值机器人:智能力量与监管博弈下的金融新生态
  • LeetCode:46.二叉树展开为链表
  • LeetCode算法日记 - Day 50: 汉诺塔、两两交换链表中的节点
  • 力扣每日一刷Day24
  • LeetCode 226. 翻转二叉树
  • leetcode 2331 计算布尔二叉树的值
  • docker: Error response from daemon: Get “https://registry-1.docker.io/v2/“
  • 从50ms到30ms:YOLOv10部署中图像预处理的性能优化实践
  • 6. Typescript 类型体操
  • [C++:类的默认成员函数——Lesson7.const成员函数]
  • 园区3D可视化数字孪生管理平台与 IBMS 智能化集成系统:打造智慧园区新范式​
  • 【Javaweb】Restful开发规范
  • 【C++】深入理解const 成员函数
  • 使用vscode自带指令查找有问题的插件
  • JAVA算法练习题day18
  • springboot3 exception 全局异常处理入门与实战