首页 > 其他分享 >三种方式部署若依前后端分离环境

三种方式部署若依前后端分离环境

时间:2022-11-08 17:35:56浏览次数:57  
标签:部署 redis ruoyi 若依 nginx 三种 conf mysql home

一、环境准备:

1.下载源码并解压:

​https://gitee.com/y_project/RuoYi-Vue​

2.前端工程配置修改及打包:

进入ruoyi-ui项目下的vue.config.js文件里的服务端口和后端地址:

三种方式部署若依前后端分离环境_docker

在ruoyi-ui目录下打开PowerShell窗口并打包项目生成dist静态资源目录:

npm install

npm run build:prod

三种方式部署若依前后端分离环境_k8s_02

3.将dist目录拷贝至nginx的html目录,修改nginx配置文件nginx.conf,注意对应修改后端地址

server {
listen 80;
server_name localhost;

location / {
root /usr/share/nginx/html/dist;
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://10.0.0.13:8080/;
}
}

4.后端工程打包

修改数据库连接:ruoyi-admin项目下src-main-resources的application-druid.yml

三种方式部署若依前后端分离环境_docker_03

修改服务器配置:ruoyi-admin项目下src-main-resources的application.yml

三种方式部署若依前后端分离环境_k8s_04

在RuoYi-Vue的bin目录下执行package.bat利用maven打包项目,会在ruoyi-admin下生成文件夹target包含ruoyi-admin.jar

三种方式部署若依前后端分离环境_docker_05

二、传统方式部署:

1.创建MySQL数据库ry-vue

将sql文件夹下的quartz.sql和ry_20220822.sql导入

create database ry-vue character set utf8 collate utf8_bin;
use ry-vue;
source quartz.sql;
source ry_20220822.sql;

2.安装并启动redis,配置文件设置密码123456
3.安装并启动nginx,将dist目录拷贝至nginx的html目录,注意修改配置文件
4.启动若依主程序

nohup java -jar ruoyi-admin.jar > ruoyi_log.out 2>&1 &

三种方式部署若依前后端分离环境_vm_06

浏览器登录http://IP admin ruoyi

三种方式部署若依前后端分离环境_vm_07

三、docker方式部署

1.先看看目录情况

三种方式部署若依前后端分离环境_k8s_08

conf目录里面是nginx和redis配置文件

三种方式部署若依前后端分离环境_docker_09

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;

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-server:8080/;
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}

redis.conf

requirepass 123456

db目录里面是数据库初始化脚本

三种方式部署若依前后端分离环境_vm_10

html目录里面是前端包

三种方式部署若依前后端分离环境_vm_11

jar目录里面是打包的jar文件

三种方式部署若依前后端分离环境_vm_12

另外需要创建mysql、nginx、redis和ruoyi四个目录作为docker容器的本地目录映射

2.编写用到得4个组件mysql、redis、nginx和ruoyi的dockerfile制作镜像

mysql-dockerfile

# 基础镜像
FROM mysql:5.7.33
# author
MAINTAINER zaker
# 执行sql脚本
ADD ./db/*.sql /docker-entrypoint-initdb.d/

redis-dockerfile

# 基础镜像
FROM redis:6.2-alpine
# author
MAINTAINER zaker
# 挂载目录
VOLUME /home/ruoyi/redis
# 创建目录
RUN mkdir -p /home/ruoyi/redis
# 指定路径
WORKDIR /home/ruoyi/redis
# 复制conf文件到路径
COPY ./conf/redis.conf /home/ruoyi/redis/redis.conf

nginx-dockerfile

# 基础镜像
FROM nginx:1.21.1
# author
MAINTAINER zaker
# 挂载目录
VOLUME /home/ruoyi/projects/ruoyi-ui
# 创建目录
RUN mkdir -p /home/ruoyi/projects/ruoyi-ui
# 指定路径
WORKDIR /home/ruoyi/projects/ruoyi-ui
# 复制conf文件到路径
COPY ./conf/nginx.conf /etc/nginx/nginx.conf
# 复制html文件到路径
COPY ./html/dist /home/ruoyi/projects/ruoyi-ui

ruoyi-dockerfile

# 基础镜像
FROM java:8
# author
MAINTAINER zaker
# 挂载目录
VOLUME /home/ruoyi
# 创建目录
RUN mkdir -p /home/ruoyi
# 指定路径
WORKDIR /home/ruoyi
# 复制jar文件到路径
COPY ./jar/*.jar /home/ruoyi/ruoyi.jar
# 启动应用
ENTRYPOINT ["java","-jar","ruoyi.jar"]

3.编写docker-compose.yml

version : '3'
services:
ruoyi-mysql:
container_name: ruoyi-mysql
image: mysql-ruoyi:1.0
build:
context: .
dockerfile: mysql-dockerfile
ports:
- "3306:3306"
volumes:
- ./mysql/conf:/etc/mysql/conf.d
- ./mysql/logs:/logs
- ./mysql/data:/var/lib/mysql
command: [
'mysqld',
'--innodb-buffer-pool-size=80M',
'--character-set-server=utf8mb4',
'--collation-server=utf8mb4_unicode_ci',
'--default-time-znotallow=+8:00',
'--lower-case-table-names=1'
]
environment:
MYSQL_DATABASE: 'ry-vue'
MYSQL_ROOT_PASSWORD: password

ruoyi-redis:
container_name: ruoyi-redis
image: redis-ruoyi:1.0
build:
context: .
dockerfile: redis-dockerfile
ports:
- "6379:6379"
volumes:
- ./conf/redis.conf:/home/ruoyi/redis/redis.conf
- ./redis/data:/data
command: redis-server /home/ruoyi/redis/redis.conf

ruoyi-nginx:
container_name: ruoyi-nginx
image: nginx-ruoyi:1.0
build:
context: .
dockerfile: nginx-dockerfile
ports:
- "80:80"
volumes:
- ./html/dist:/home/ruoyi/projects/ruoyi-ui
- ./conf/nginx.conf:/etc/nginx/nginx.conf
- ./nginx/logs:/var/log/nginx
- ./nginx/conf.d:/etc/nginx/conf.d
depends_on:
- ruoyi-server
links:
- ruoyi-server

ruoyi-server:
container_name: ruoyi-server
image: server-ruoyi:1.0
build:
context: .
dockerfile: ruoyi-dockerfile
ports:
- "8080:8080"
volumes:
- ./ruoyi/logs:/home/ruoyi/logs
- ./ruoyi/uploadPath:/home/ruoyi/uploadPath
depends_on:
- ruoyi-mysql
- ruoyi-redis
links:
- ruoyi-mysql
- ruoyi-redis

4.启动容器

docker-compose up -d

三种方式部署若依前后端分离环境_k8s_13

登录页面

三种方式部署若依前后端分离环境_k8s_14

四、k8s方式部署(使用kuboard图形化)

1.创建名称空间

三种方式部署若依前后端分离环境_k8s_15

2.创建mysql的statefulset

首先需要创建pvc

三种方式部署若依前后端分离环境_docker_16

创建my.cnf的configmap

三种方式部署若依前后端分离环境_k8s_17

创建工作负载容器

三种方式部署若依前后端分离环境_k8s_18

三种方式部署若依前后端分离环境_k8s_19

三种方式部署若依前后端分离环境_docker_20

3.创建redis的deployment

创建redis配置configmap

三种方式部署若依前后端分离环境_vm_21

三种方式部署若依前后端分离环境_vm_22

三种方式部署若依前后端分离环境_vm_23

4.创建nginx的deployment

三种方式部署若依前后端分离环境_k8s_24

5.创建ruoyi-server

三种方式部署若依前后端分离环境_docker_25

标签:部署,redis,ruoyi,若依,nginx,三种,conf,mysql,home
From: https://blog.51cto.com/u_15233520/5833873

相关文章

  • Elastaticsearch 集群部署
    系统Ubuntu16.04Elastaticsearch5.6.9Kibana5.6.9官网地址https://www.elastic.co/products/elasticsearch主机名称IPes-n1192.168.175.76......
  • ClickHouse集群部署
    集群节点信息192.168.175.212ch01192.168.175.213ch02192.168.175.214ch03搭建一个zookeeper集群复制数据需要zookeeper配合下载安装包zookeeper官网:https://......
  • nexus 部署与设置
    安装nexusdf-h先查看目录磁盘空间,我安装的版本占用了四个G空间,目录文件空间不够导致启动失败上传nexus压缩包,并解压查询8081端口号是否被占用sudonetst......
  • SQLite源码安装部署
    1.下载下载地址:https://www.sqlite.org/download.html我这里下载的是:sqlite-autoconf-3390400.tar.gz 2.解压编译[root@localhostsoft]#yuminstallgcc[root@localh......
  • 前端灰度环境wayne+k8s部署
    前端灰度环境wayne+k8s部署一、灰度发布canay背景灰度发布是一种发布方式,也叫金丝雀发布,起源是矿工在下井之前会先放一只金丝雀到井里,如果金丝雀不叫了,就代表瓦斯浓......
  • UNTX部署到IIS,亲测有效
    一、安装服务器需要的环境1.安装Node.js下载地址:http://nodejs.cn/download,根据服务器环境选择对应版本的安装包即可,本人选的是Windows64位的.msi安装包......
  • SpringBoot构建war部署到tomcat中无法注册到Nacos服务
    最近项目基本开发完成,准备部署到服务器中进行功能的验证,但当把所有的环境都搭建好,启动项目后,tomcat启动日志正常,发现在服务调用时一直报错。项目是使用SpringBoot框架搭建......
  • redis集群部署
    /data/app/redis/redis-5.0.0/src/redis-server/data/app/redis/redis-5.0.0/7001/redis.conf/data/app/redis/redis-5.0.0/src/redis-server/data/app/redis/redis......
  • 关于 Angular 部署以及 index.html 里 base hRef 属性的关联关系
    直接在SAP电商云SpartacusUI项目下,运行命令行ngbuild,输出如下:dist文件夹:把dist文件夹下的mystore直接放到tomcatwebapps文件夹下面,运行时:如果修改b......
  • mysql单实例部署
    mysql安装分三步走一、数据文件的目录放在/data/mysql二、软件放在/usr/local/三、配置文件/etc/--mysql的配置文件必须是‘.cnf’结尾单实例安装用my.cnf这个配置......