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

系统需求

  • 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

浏览器访问

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Kotlin】类和对象

1 前言 Kotlin 是面向对象编程语言,与 Java 语言类似,都有类、对象、属性、构造函数、成员函数,都有封装、继承、多态三大特性,不同点如下。 Java 有静态(static)代码块,Kotlin 没有&#xff1…

探索 ON1 Resize Ai 2023.5 for Mac/win:释放图像的无限可能

ON1 Resize AI 2023.5 for Mac/Win 是一款专业的图像无损放大软件,通过人工智能技术,能够将图像放大至更高的分辨率,同时保持图像细节和清晰度的最佳状态。该软件的强大功能和直观的操作界面,使它成为摄影师、设计师和艺术家的理想…

WinCE USB驱动架构及术语明析

一、层式驱动的概念。 WinCE驱动多为层式驱动,分为MDD和PDD两层。 MDD包含通用的驱动代码,向操作系统提供了驱动接口,该层代码调用PDD功能访问硬件。 PDD部分包含与硬件平台相关的特殊代码,不具有通用性。 之所以要分层&#xff0…

day-18 轮转数组

时间复杂度为O&#xff08;n&#xff09; code: class Solution {public void rotate(int[] nums, int k) {int nnums.length;kk%n;int arr[]new int[n];for(int i0;i<n;i){arr[(ik)%n]nums[i];}for(int i0;i<n;i){nums[i]arr[i];}} }参考答案 进行三次翻转 空间复杂度O…

03_Tomcat

文章目录 Tomcat概念自制简易的服务器JavaEE规范Tomcat安装Tomcat启动Tomcat的资源部署直接部署虚拟映射 Tomcat的设置 Tomcat 概念 服务器&#xff1a;两层含义。 软件层面&#xff1a;软件&#xff0c;可以将本地的资源发布到网络中&#xff0c;供网络上面的其他用户来访问…

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

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

论文学习——基于距离的随机变化动态多目标优化的马氏诺比斯方法

论文题目&#xff1a;A Mahalanobis Distance-Based Approach for Dynamic Multiobjective Optimization With Stochastic Changes 基于距离的随机变化动态多目标优化的马氏诺比斯方法&#xff08;Ya ru H u , Jinhua Zheng , Shouyong Jiang, Shengxiang Yang , Senior Membe…

云计算科学与工程实践指南--章节引言收集

云计算科学与工程实践指南–章节引言收集 //本文收集 【云计算科学与工程实践指南】 书中每一章节的引言。 我已厌倦了在一本书中阅读云的定义。难道你不失望吗&#xff1f;你正在阅读一个很好的故事&#xff0c;突然间作者必须停下来介绍云。谁在乎云是什么&#xff1f; 通…

借助产品说明书模板,让你轻松制作产品说明书

产品说明书是一种普遍存在的文档&#xff0c;在我们日常生活和工作中&#xff0c;您可能需要为自己的产品或服务创建一个。这是因为产品说明书是介绍产品特性、使用说明、维护方式以及注意事项等内容的有效工具。然而&#xff0c;制作产品说明书可能是一个复杂且困难的过程&…

stable diffusion 零基础入门教程

一、前言 Midjourney 生成的图片很难精准的控制&#xff0c;随机性很高&#xff0c;需要大量的跑图&#xff0c;但Stable Diffusion可以根据模型较精准的控制。 SD 效果图展示&#xff1a; 二、Stable Diffusion 介绍 Stable Diffusion 是一款基于人工智能技术开发的绘画软件…

灯塔:CSS笔记(2)

一 选择器进阶 后代选择器&#xff1a;空格 作用&#xff1a;根据HTML标签的嵌套关系&#xff0c;&#xff0c;选择父元素 后代中满足条件的元素 选择器语法&#xff1a;选择器1 选择器2{ css } 结果&#xff1a; *在选择器1所找到标签的后代&#xff08;儿子 孙子 重孙子…

基于Springboot的智慧社区居家养老健康管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的智慧社区居家养老健康管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;…

膜厚测量仪在半导体应用中及其重要

随着科技的不断发展&#xff0c;半导体行业已成为当今世界的核心产业之一。在这个领域中&#xff0c;半导体膜厚测量仪作为关键设备&#xff0c;其精度和可靠性对于产品质量和生产效率具有至关重要的作用。本文将详细介绍半导体膜厚测量仪的工作原理、应用领域以及其在半导体制…

如何分辨Mac设备X86或ARM

在终端中输入如下命令可以获取到当前 Mac 设备是 X86 还是 ARM 类型 uname -a 以上便是此次分享的全部内容&#xff0c;希望能对大家有所帮助!

运动想象 (MI) 迁移学习系列 (2) :TDLNet

运动想象迁移学习系列:TDLNet 0. 引言1. 主要贡献2. 网络介绍2.1 TDM模块2.2 Inception模块2.3 RAMM模块 3. 特征可视化算法4. 结果4.1 消融实验4.2 与基于CNN的参考和迁移学习方法的比较4.3 基于遮挡信号频率的特征可视化 5. 总结欢迎来稿 论文地址&#xff1a;https://ieeex…

委员建议进一步扩大香港与内地金融市场互联互通发展

在我们共同追寻金融发展的星辰大海之际&#xff0c;我怀着无比激动的心情&#xff0c;向诸位委员提议进一步扩大香港与内地金融市场互联互通发展。这个议题犹如一颗璀璨的明珠&#xff0c;闪耀着诱人的光芒&#xff0c;吸引着我们为之奋斗。让我们共同探讨这一话题&#xff0c;…

新版电脑QQ使用体验怎么样?最软库帮你体验!

你已经有多久没在电脑上用QQ了&#xff1f; 最近腾讯发布了由NT架构打造的最新版电脑QQ&#xff0c;彻底抛弃了以往陪伴了我们十几年的用户界面 采用了全新的用户界面&#xff0c;说是全新界面&#xff0c;其实就是风格往微信靠拢而已。 最软库本期就给大家试试新QQ&#xff0c…

基于MPPT的太阳能光伏电池simulink性能仿真,对比扰动观察法,增量电导法,恒定电压法

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 4.1 扰动观察法 (Perturb and Observe Method) 4.2 增量电导法 (Incremental Conductance Method) 4.3 恒定电压法 (Constant Voltage Method) 5.完整工程文件 1.课题概述 在simulink中&#xff0c;实…

2024年阿里云服务器新版计算器上线了,报价不求人

阿里云服务器价格计算器&#xff0c;鼠标选择云服务器ECS实例规格、地域、系统盘、带宽及购买时长即可一键计算出精准报价&#xff0c;报价不求人使用计算器自己查&#xff0c;报价清单支持下载。阿里云服务器网aliyunfuwuqi.com分享阿里云服务器价格计算器链接地址&#xff1a…

前端面试练习24.3.8

防抖和节流 防抖&#xff08;Debouncing&#xff09;&#xff1a; 防抖是指在短时间内连续触发同一事件时&#xff0c;只执行最后一次触发的事件处理函数。 在实际应用中&#xff0c;常常用于处理用户输入的搜索框或者滚动事件。例如&#xff0c;当用户连续输入搜索关键词时&am…