docker 部署 若依 Ruoyi springboot+vue分离版 dockerCompose

本篇从已有虚拟机/服务器 安装好dokcer为基础开始讲解

1.部署mysql

创建conf data init三个文件夹 

conf目录存放在mysql配置文件

init目录存放着若依数据库sql文件(从navicat导出的并非若依框架自带sql)

创建一个属于本次若依部署的网段(只有在一个网段的容器才能通过容器名通信)

启动mysql命令  -v是挂载,宿主机文件挂载到容器中 

docker run -d --name mysql -p 3309:3306 -e TZ=Asia/Shanghai -e MYSQL_ROOT_PASSWORD=123 -v /usr/yxt/mysql/data:/var/lib/mysql -v /usr/yxt/mysql/init:/docker-entrypoint-initdb.d -v /usr/yxt/mysql/conf:/etc/mysql/conf.d --network ruoyinet mysql

通过navicat连接查看

mysql部署成功

2.部署Redis

docker run -d --name redis -p 6379:6379 --network ruoyinet redis

3.部署后端服务

修改 redis和mysql连接的ip地址换为容器名称

上传若依的jar包,并编写一个dockerfile文件

进入Dockerfile文件目录执行命令 打包成镜像

docker build -t ryadmin .

启动镜像为容器

docker run -d --name ryadmin -p 8090:8090 --network ruoyinet ryadmin

 网页测试访问接口或查看容器日志 后端服务启动成功

4.部署前端服务

上传打包好的若依前端

编写nginx.conf 文件


worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/json;

    sendfile        on;
    
    keepalive_timeout  65;
    server {
        listen       8091;
        # 指定前端项目所在的位置
        location / {
            root /usr/share/nginx/html/ruoyi-ui;
            try_files $uri $uri/ /index.html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        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://ryadmin:8090/;
#            rewrite /api/(.*)  /$1 break;
#            proxy_pass http://ramin:8090;
        }
    }
    
}

启动docker中nginx镜像并将前端项目与配置文件进行挂载

docker run -d --name nginx -p 8091:8091 -v /usr/yxt/nginx:/usr/share/nginx/html -v /usr/yxt/nginx/nginx.conf:/etc/nginx/nginx.conf --network ruoyinet nginx

访问前端页面 成功

5.使用dockerCompose部署

Docker Compose通过一个单独的docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署。

先将前面的容器全部删除

编写一个docker-compose.yml文件

version: "3.8"

services:
  mysql:
    image: mysql
    container_name: mysql
    ports:
      - "3307:3306"
    environment:
      TZ: Asia/Shanghai
      MYSQL_ROOT_PASSWORD: 123
    volumes:
      - "/usr/yxt/mysql/data:/var/lib/mysql"
      - "/usr/yxt/mysql/init:/docker-entrypoint-initdb.d"
      - "/usr/yxt/mysql/conf:/etc/mysql/conf.d"
    networks:
      - ruoyinet
      
  redis:
    image: redis
    container_name: redis
    ports:
      - "6379:6379"
    networks:
      - ruoyinet

  ryadmin:
    build: 
      context: /usr/yxt/radmin
      dockerfile: Dockerfile
    container_name: ryadmin
    ports:
      - "8090:8090"
    networks:
      - ruoyinet
    depends_on:
      - mysql
      - redis
      
  nginx:
    image: nginx
    container_name: nginx
    ports:
      - "8091:8091"
    volumes:
      - "/usr/yxt/nginx:/usr/share/nginx/html"
      - "/usr/yxt/nginx/nginx.conf:/etc/nginx/nginx.conf"
    depends_on:
      - ryadmin
    networks:
      - ruoyinet
networks:
  ruoyinet:
    name: rynet

在docker-compose.yml文件目录下输入命令

docker compose up -d

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

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

相关文章

【产品经理】APP备案(阿里云)

工信部《关于开展移动互联网应用程序备案工作的通知》 工业和信息化部印发了《关于开展移动互联网应用程序备案工作的通知》,“在中华人民共和国境内从事互联网信息服务的App主办者,应当依照相关法律法规等规定履行备案手续,未履行备案手续的…

【C程序设计】用心浇灌<C程序>

目录 数据类型 整数类型 实例 浮点类型 void 类型 类型转换 数据类型 在 C 语言中,数据类型指的是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何解释存储的位模式。 C 中的类型可分为以下几种&…

深度学习使用Keras进行迁移学习提升网络性能

上一篇文章我们用自己定义的模型来解决了二分类问题,在20个回合的训练之后得到了大约74%的准确率,一方面是我们的epoch太小的原因,另外一方面也是由于模型太简单,结构简单,故而不能做太复杂的事情,那么怎么提升预测的准确率了?一个有效的方法就是迁移学习。 迁移学习其…

C++反转链表递归

文章目录 题目描述解题思路代码复杂度分析 题目描述 LCR 024. 反转链表 - 力扣(LeetCode) 给定单链表的头节点 head ,请反转链表,并返回反转后的链表的头节点。 解题思路 这里我们采用递归的思路来解决首先我们分为两个视角来查看…

[debug/main.o] Error 1 QtCreator编译报错

我是用Qt5.6.0MinGW32位版本编译程序,在Pro文件中添加了预编译头文件后编译报错:mingw32-make[1]: *** [debug/main.o] Error 1; #添加预编译头文件 CONFIG precompiled_header PRECOMPILED_HEADER header.h 解决方法: 1.删除…

大数据-Storm流式框架(六)---Kafka介绍

Kafka简介 Kafka是一个分布式的消息队列系统(Message Queue)。 官网:Apache Kafka 消息和批次 kafka的数据单元称为消息。消息可以看成是数据库表的一行或一条记录。 消息由字节数组组成,kafka中消息没有特别的格式或含义。 消息有可选的键&#x…

【跟小嘉学 Rust 编程】三十三、Rust的Web开发框架之一: Actix-Web的基础

系列文章目录 【跟小嘉学 Rust 编程】一、Rust 编程基础 【跟小嘉学 Rust 编程】二、Rust 包管理工具使用 【跟小嘉学 Rust 编程】三、Rust 的基本程序概念 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念 【跟小嘉学 Rust 编程】五、使用结构体关联结构化数据 【跟小嘉学…

【Unity精华一记】特殊文件夹

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

云原生安全:如何保护云上应用不受攻击

文章目录 云原生安全的概念1. 多层次的安全性2. 自动化安全3. 容器安全4. 持续监控5. 合规性 云原生安全的关键挑战1. 无边界的环境2. 动态性3. 多云环境4. 容器化应用程序5. API和微服务 如何保护云上应用不受攻击1. 身份验证和访问控制示例代码: 2. 数据加密示例代…

探秘Kafka背后的幕后机关,揭示消息不丢失或重复的原理与实践经验

背景 相信大家在工作中都用过消息队列,特别是 Kafka 使用得更是普遍,业务工程师在使用 Kafka 的时候除了担忧 kafka 服务端宕机外,其实最怕如下这样两件事。 消息丢失。下游系统没收到上游系统发送的消息,造成系统间数据不一致。…

PyTorch中grid_sample的使用方法

官方文档首先Pytorch中grid_sample函数的接口声明如下: torch.nn.functional.grid_sample(input, grid, modebilinear, padding_modezeros, align_cornersNone)input : 输入tensor, shape为 [N, C, H_in, W_in]grid: 一个field flow, shape为…

JAVA实现校园失物招领管理系统 开源

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 招领管理模块2.2 寻物管理模块2.3 系统公告模块2.4 感谢留言模块 三、界面展示3.1 登录注册3.2 招领模块3.3 寻物模块3.4 公告模块3.5 感谢留言模块3.6 系统基础模块 四、免责说明 一、摘要 1.1 项目介绍 基于VueSpri…

深入剖析SQL与NoSQL的优劣势,帮你决定最佳数据存储方案

你是否在为系统的数据库来一波大流量就几乎打满 CPU,日常 CPU 居高不下烦恼?你是否在各种 NoSQL 间纠结不定,到底该选用哪种最好?今天的你就是昨天的我,这也是我写这篇文章的初衷。 作为互联网从业人员,我们要知道关系型数据库…

蓝桥杯 第 2 场算法双周赛 第4题 通关【算法赛】c++ 优先队列 + 小根堆 详解注释版

题目 通关【算法赛】https://www.lanqiao.cn/problems/5889/learning/?contest_id145 问题描述 小蓝最近迷上了一款电玩游戏“蓝桥争霸”。这款游戏由很多关卡和副本组成,每一关可以抽象为一个节点,整个游戏的关卡可以抽象为一棵树形图,每…

群晖上搭建teamspeak3语音服务器

什么是 TeamSpeak ? TeamSpeak (简称 TS)是一款团队语音通讯工具,但比一般的通讯工具具有更多的功能而且使用方便。它由服务器端程序和客户端程序两部分组成,如果不是想自己架设 TS 服务器,只需下载客户端程…

SQL Server Management Studio (SSMS)的安装教程

文章目录 SQL Server Management Studio (SSMS)的安装教程从Microsoft官网下载SQL Server Management Studio安装程序。选中安装程序右键并选择“以管理员的身份运行”选项选择安装目录,单击“安装”按钮开始安装过程安装成功界面安装完成后,您可以启动S…

LaTeX:在标题section中添加脚注footnote

命令讲解 先导包: \usepackage{footmisc} 设原标题为: \section{标题内容} 更改为: \section[标题内容]{标题内容\protect\footnote{脚注内容}} 语法讲解: \section[]{} []内为短标题,作为目录和页眉中的标题。…

Java面向对象(进阶)-- this关键字的使用

文章目录 一、引子(1) this是什么?(2)什么时候使用this1.实例方法或构造器中使用当前对象的成员2. 同一个类中构造器互相调用 二、探讨(1)问题(2)解决 三、this关键字&am…

Android framework服务命令行工具框架 - Android13

Android framework服务命令行工具框架 - Android13 1、framework服务命令行工具简介2、cmd 执行程序2.1 目录和Android.bp2.2 cmdMain 执行入口2.3 cmd命令 3、am命令工具,实质脚本执行cmd activity3.1 sh脚本3.2 activity服务注册3.3 onShellCommand执行 4、简易时…

Linux 系统调用IO口,利用光标偏移实现文件复制

用系统调用IO函数实现从一个文件读取最后2KB数据并复制到另一个文件中,源文件以只读方式打开,目标文件以只写的方式打开,若目标文件不存在,可以创建并设置初始值为0664,写出相应代码,要对出错情况有一定的处…