部署RuoYi项目

该文详细介绍了如何使用Docker部署MariaDB(MySQL)、Redis,构建Ruoyi后端镜像并创建容器,以及设置Nginx进行反向代理和负载均衡。步骤包括数据库的端口映射、密码设置、文件导入,后端项目打包、Dockerfile编写、镜像构建,以及Nginx容器的创建与配置。整个过程涵盖了容器化部署的关键环节。
摘要由CSDN通过智能技术生成

1. 安装MYSQL与Redis

这里使用的是 mariadb 镜像,并且将 mariadb 数据库文件挂载到宿主机的 /home/mysql/ 目录下

-p 3310:3306的含义是将docker容器的端口3306映射到主机的端口3310 上
MYSQL_ROOT_PASSWORD=123456是指创建数据库时候的密码
–name RuoYi_Mysql是指创建数据库的名字

docker run -v /home/mysql/:/var/lib/mysql \
-p 3310:3306 -e MYSQL_ROOT_PASSWORD=123456 \
--privileged=true --restart=always --name RuoYi_Mysql -d mariadb

创建好数据Mysql之后,进入到RuoYi_Mysql容器中,使用直接将文件拖拽进xshell命令

apt-get update && apt-get install lrzsz

安装好这个命令后将已经写好的数据库文件ruoyi.sql文件拖拽进RuoYi_Mysql容器中,然后创建数据库ruoyi

mysql -u root -p
create database ruoyi;
use ruoyi;
//执行ruoyi.sql文件
mysql> source /ruoyi.sql
//查看结果
show tables;
安装Redis
docker run -itd --name redis --restart=always -p 6379:6379 redis

2. 构建ruoyi后端镜像并创建容器

将后端项目打包,在服务器/home目录下创建ruoyi目录,将ruoyi-admin.jar放到/home/ruoyi下,并编写Dockerfile文件

FROM java:8
ARG JAR_FILE=./*.jar
COPY ${JAR_FILE} app.jar
ENV TZ=Asia/Shanghai
ENTRYPOINT ["java","-jar","/app.jar"]
构建镜像,注意构建镜像的时候后面有一个实心的小圆点
docker build -t ruoyi .
创建后端容器

将容器中的 /home/ruoyi/ 挂载到宿主机的 /home/ruoyidata/ 目录并且设置数据库地址与密码等环境变量参数
-p 8180:8180
-e DB_HOST=10.111.51.110因为数据库是在docker中创建的,将端口8180映射到了主机的8180端口,所以这里填写主机的地址就可以访问到上面创建好的数据库,下面的redis同理

docker run -d \
--name ruoyi --restart always \
-p 8180:8180 \
-e "TZ=Asia/Shanghai" \
-e DB_HOST=10.111.51.110 \
-e DB_PWD=123456 \
-e REDIS_HOST=10.111.51.110 \
-v /home/ruoyidata/:/home/ruoyi/ \
ruoyi

3. 安装与配置Nginx容器

创建nginx容器
  • /home/nginx/conf.d 用于存放配置文件
  • /home/nginx/cert 用于存放 https 证书
  • /home/nginx/html 用于存放网页文件
  • /home/nginx/logs 用于存放日志
docker run -d \
--name nginx --restart always \
-p 80:80 -p 443:443 \
-e "TZ=Asia/Shanghai" \
-v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf.d:/etc/nginx/conf.d \
-v /home/nginx/logs:/var/log/nginx \
-v /home/nginx/cert:/etc/nginx/cert \
-v /home/nginx/html:/usr/share/nginx/html \
nginx:alpine

创建这个docker的时候可能会报错,原因是这句话 -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf
/home/nginx/nginx.conf 下的 nginx.conf 是一个文件夹,所以删掉nginx.conf,然后按下面的方法做,也就是创建了一个新的nginx docker容器,然后把里面的nginx.conf复制到home/nginx中代替原来的nginx.conf

docker run --name test -d nginx  
docker cp test:/etc/nginx/nginx.conf /home/nginx/
配置Nginx

在宿主机目录/home/nginx/conf.d中创建ruoyi.conf文件

sudo vim ruoyi.conf

写入如下内容

server
    {
        listen 80;
        server_name 10.111.51.110;

		location / {
			root   /usr/share/nginx/html/ruoyi/dist;
			index  index.html index.htm;
			try_files $uri $uri/ /index.html?s=$uri&$args;
			error_page 405 =200 http://$host$request_uri;
		}

		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.111.51.110:8180/;
		}
	}

将前端打包好的项目dist文件放到宿主机 /home/nginx/html/ruoyi目录下,然后重启nginx容器

docker restart nginx

注意:容器中/usr/share/nginx/html/ruoyi/dist 对应宿主机的 /home/nginx/html/ruoyi/dist 目录,因此文件上传到宿主机的目录即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值