若依/RuoYi-Vue使用docker-compose部署

news2024/11/15 21:46:58

系统需求

  • JDK >= 1.8

  • MySQL >= 5.7

  • Maven >= 3.0

  • Node >= 12

  • Redis >= 3

思路

前端服务器 nginx

后端服务器+代码打包 java、maven、node

数据库/缓存 mysql、redis

开始

创建目录ruoyi并进入

克隆若依代码

git clone RuoYi-Vue: 🎉 基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统,同时提供了 Vue3 的版本

 

拉取node镜像

docker pull node:12.18.0

 

运行映射若依页面显示的目录到容器的opt目录下

docker run -it --rm -v ./ruoyi-ui/:/opt node:12.18.0 /bin/bash

进入容器后进入 /opt目录

前端代码构建

npm install

 

构建后打包 默认为dist

npm run build:prod

 

退出容器到本地查看

修改mysql的连接配置

vim ruoyi/RuoYi-Vue/ruoyi-admin/src/main/resources/application-druid.yml

 

修改redis连接配置

vim ruoyi/RuoYi-Vue/ruoyi-admin/src/main/resources/application.yml

 

拉取maven镜像

docker pull maven:3.8.8

 

本地移动到ruoyi目录下

运行映射若依后端目录到容器的vue目录下

docker run -it --rm -v ./RuoYi-Vue:/vue maven:3.8.8 /bin/bash

进入容器的/vue目录构建打包后端

mvn package

退出查看

在ruoyi目录下创建java目录

将打包好的后端代码目录中的 jar包拷贝到ruoyi目录下的Java目录下 并创建Dockerfile文件

编辑Dockerfile文件

#父镜像

FROM centos:7

#下载jdk

RUN yum -y install java-1.8.0-openjdk

#cd到工作目录

WORKDIR /opt

#拷贝jar包至镜像内

COPY ./ruoyi-admin.jar /opt

#运行jar包

CMD ["java","-jar","ruoyi-admin.jar"]

拉取redis、mysql、nginx镜像

创建ruoyi-vue目录

将之前创建的java目录和后端RuoYi-Vue目录移动到其中

这里还需要拷贝一份nginx的配置文件到当前目录方便挂载到nginx容器中,内容为下

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;

}

location /prod-api/ {

proxy_pass http://java:8080/; #对应docker-compose.ym文件中java的容器名

}

}

}

开始创建docker-compose.yml文件

        编写文件内容

#nginx镜像启动并映射端口与数据关联目录 编写的本地nginx配置文件挂载到容器的/etc/nginx 链接java镜像 编排 设置字符集
version: '3'
    services:
        ruoyi-web:
            image: nginx
            container_name: ruoyi
            hostname: ruoyi
            environment:
                - LANG=C.UTF-8
                - LC_ALL=C.UTF-8
            ports:
                - 808:80
            volumes:
                - ./RuoYi-Vue/ruoyi-ui/dist/:/usr/share/nginx/html/
                - ./nginx.conf:/etc/nginx/nginx.conf:ro
                - /mnt/nginx/log:/var/log/nginx
            links:
                - java
            depends_on:
                - java
#java镜像启动 链接数据镜像与redis镜像 编排
            java:
            build: ./java
            container_name: ruoyi-java
            hostname: ruoyi-java
            links:
                - db
                - redis
            depends_on:
                - db
                - redis
#数据库镜像启动配置环境变量 密码和数据库ry-vue 设置数据库字符集 映射数据目录 挂载sql语句文件到对应目录
            db:
            image: mysql:5.7
            container_name: mysql.server
            hostname: db
            environment:
                - MYSQL_ROOT_PASSWORD=Aa@123456
                - MYSQL_DATABASE=ry-vue
            command:
                --default-authentication-plugin=mysql_native_password
                --character-set-server=utf8mb4
                --collation-server=utf8mb4_general_ci
                --explicit_defaults_for_timestamp=true
                --lower_case_table_names=1
            volumes:
                - /opt/mysql-data:/var/lib/mysql
                - ./RuoYi-Vue/sql:/docker-entrypoint-initdb.d
#redis镜像启动
            redis:
            image: redis
            container_name: redis.server
            hostname: redis.server

开始部署

docker compose up

浏览器访问

希望能够帮助到大家!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1502890.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据分享】2013-2022年全国范围逐日SO2栅格数据

空气质量数据是在我们日常研究中经常使用的数据!之前我们给大家分享了2013-2022年全国范围逐月SO2栅格数据和逐年SO2栅格数据(均可查看之前的文章获悉详情)。 本次我们给大家带来的是2013-2022年全国范围的逐日的SO2栅格数据,原始…

mq基础类设计

消息队列就是把阻塞队列这样的数据结构单独提取成一个程序独立进行部署。——>实现生产者消费者模型。 但是阻塞队列是在一个进程内部进行的; 消息队列是在进程与进程之间进行实现的, 解耦合:就是在分布式系统中,A服务器调用B…

RT-DETR优化改进:特征融合篇 | GELAN(广义高效层聚合网络)结构来自YOLOv9

🚀🚀🚀本文改进:使用GELAN改进架构引入到RT-DETR 🚀🚀🚀RT-DETR改进创新专栏:http://t.csdnimg.cn/vuQTz 🚀🚀🚀学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 🚀🚀🚀RT-DETR模型创新优化,涨点技巧分享,科研小助手; 1.YOLOv9介绍 论…

在用Java写算法的时候如何加快读写速度

对于解决该方法我们一般如下操作,不需要知道为什么,有模板(个人观点) 使用BufferedReader代替Scanner:Scanner类在读取大量输入时性能较差,而BufferedReader具有更高的读取速度。可以使用BufferedReader的r…

JVM的工作流程

目录 1.JVM 简介 2.JVM 执行流程 3. JVM 运行时数据区 3.1 堆(线程共享) 3.3 本地方法栈(线程私有) 3.4 程序计数器(线程私有) 3.5 方法区(线程共享) 4.JVM 类加载 ① 类…

webUI自动化之元素及浏览器操作

一、元素定位方式 1、元素属性定位: 1 element driver.find_element_by_id(self, id)    该类方法已经过时,新的方法如下: element driver.find_element(By.ID, ID 值)        # 用元素的 ID 属性定位element driver.find_eleme…

云打印软件免费版在哪?云打印服务怎么使用?

随着新的一年的到来,很多同学们又开始准备着新一轮的学习冲刺了。在学习的旅途中,打印资料的需求必然伴随着每一个人,但是线下打印店价格贵、打印不方便、没时间去打印等多种因素总是制约着我们。在这种情况下,云打印软件和云打印…

Svg Flow Editor 原生svg流程图编辑器(一)

系列文章 Svg Flow Editor 原生svg流程图编辑器(二) 效果展示 项目概述 svg flow editor 是一款流程图编辑器,提供了一系列流程图交互、编辑所必需的功能,支持前端研发自定义开发各种逻辑编排场景,如流程图、ER 图、…

【论文笔记】Scalable Diffusion Models with State Space Backbone

原文链接:https://arxiv.org/abs/2402.05608 1. 引言 主干网络是扩散模型发展的关键方面,其中基于CNN的U-Net(下采样-跳跃连接-上采样)和基于Transformer的结构(使用自注意力替换采样块)是代表性的例子。…

使用R语言进行聚类分析

一、样本数据描述 城镇居民人均消费支出水平包括食品、衣着、居住、生活用品及服务、通信、文教娱乐、医疗保健和其他用品及服务支出这八项指标来描述。表中列出了2016年我国分地区的城镇居民的人均消费支出的原始数据,数据来源于2017年的《中国统计年鉴》&#xf…

传递函数硬件化

已知一个系统的传递函数,如何进行硬件化呢? 只需要将传递函数离散化,得到差分方程,就可以根据差分方程进行硬件设计。 通过例子说明: 得到差分方程后,其中y(k)/y(k-1)/y(k-2)/u(k-1)/u(k-2)等代表不同周期…

【Spring】Spring状态机

1.什么是状态机 (1). 什么是状态 先来解释什么是“状态”( State )。现实事物是有不同状态的,例如一个自动门,就有 open 和 closed 两种状态。我们通常所说的状态机是有限状态机,也就是被描述的事物的状态的数量是有…

BC161 大吉大利,今晚吃鸡

一&#xff1a;题目 二&#xff1a;思路 三&#xff1a;代码 #include<bits/stdc.h>using namespace std;long long cnt;//柱子定义为x, y, z void move(int n, char x, char y, char z) {if(n 1){//printf("%c -> %c\n", x, y);//最大盘从x->y//prin…

git远程仓库分支推送与常见问题

1.查看远程仓库分支情况 git fetch origin git branch -r2.删除远程仓库中的某一分支(如master) git push origin --delete master问: 如果我的本地文件只有一个分支main,而远程仓库有两个分支Main和CubeMX, 若要将本地文件中新增的文件Test1.txt更改放入CubeMX中&#xff0c…

大数据开发-Hadoop分布式集群搭建

大数据开发-Hadoop分布式集群搭建 文章目录 大数据开发-Hadoop分布式集群搭建环境准备Hadoop配置启动Hadoop集群Hadoop客户端节点Hadoop客户端节点 环境准备 JDK1.8Hadoop3.X三台服务器 主节点需要启动namenode、secondary namenode、resource manager三个进程 从节点需要启动…

Linux操作系统项目上传Github代码仓库指南

文章目录 1 创建SSH key2.本地git的用户名和邮箱设置3.测试连接4.创建仓库5.终端项目上传 1 创建SSH key 1.登录github官网,点击个人头像,点击Settings,然后点击SSH and GPG keys,再点击New SSH key。 Title 可以随便取&#xff0c;但是 key 需要通过终端生成。 Linux终端执行…

窄带波束形成

阵列信号处理有以下三个研究方向&#xff1a; 检测入射信号是否存在&#xff0c;以及入射信号的数目检测入射信号的到达方向&#xff08;DOA)角增强某个感兴趣方向的信号&#xff0c;抑制其他方向的干扰&#xff08;beamforming) 波束形成&#xff08;beamforming&#xff09;…

福州·名城银河湾220㎡现代简约风装修案例分享。福州中宅装饰,福州装修

以手作维度构境, 跳脱约定成俗的风格, 转化内外地域分际, 于静谧中凝聚丰厚的美学能量, 谦虚且沉默以对。 平面设计图 项目信息 项目名称 | 名城银河湾 设计地址 | 福建福州 项目面积 | 220㎡ 项目户型 | 5室2厅2厨3卫 设计风格 | 现代轻奢 首席设计师丨欧阳光玉 中…

STM32 | STM32F407ZE(LED寄存器开发续第二天源码)

上节回顾 STM32 | STM32时钟分析、GPIO分析、寄存器地址查找、LED灯开发(第二天)STM32 | Proteus 8.6安装步骤(图文并茂)一、 LED灯开发 1、理解led灯原理图 LED0连接在PF9 PF9输出低电平(0),灯亮;PF9输出高电平(1),灯灭;(低电平有效) 2、打开GPIOF组时钟 //将…

随机输一次(Python3)

大家应该都会玩“锤子剪刀布”的游戏&#xff1a;两人同时给出手势&#xff0c;胜负规则如图所示&#xff1a; 现要求你编写一个控制赢面的程序&#xff0c;根据对方的出招&#xff0c;给出对应的赢招。但是&#xff01;为了不让对方意识到你在控制结果&#xff0c;你需要隔 K …