若依分离版-Docker部署极简教程,轻松解决根据官网部署不显示验证码等问题

若依管理系统分离版部署到Docker教程

说明

若依官方部署文档有详细的说明文档,但根据官方部署文档操作总会出现一些小的问题,这些问题多数与我们部署的环境差异性有关。所以记录一下我自己的部署过程,以及遇到的一些问题。
注:Docker的安装及操作命令可以参考:https://www.runoob.com/docker/docker-tutorial.html

MySQL、Redis部署

MySQL部署

1、查看MySQL版本信息:docker search mysql
2、拉取官方最新版:docker pull mysql:latest
3、查看本地镜像:docker images

在这里插入图片描述


4、运行MySQL容器
docker run --name mysql8 -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
5、查看运行状态
有显示mysql,说明启动成功。

在这里插入图片描述


可以用Navicat 、DBeaver进行连接

在这里插入图片描述

Redis部署

1、拉取镜像 :docker pull redis
2、创建Redis容器:docker run -id --name=redis-alone -p 6379:6379 redis

在这里插入图片描述


3、连接成功

在这里插入图片描述

前端部署

1、修改文件【.env.production】
修改前:

# 页面标题
VUE_APP_TITLE = 若依管理系统

# 生产环境配置
ENV = 'production'

# 若依管理系统/生产环境
VUE_APP_BASE_API = '/prod-api'

修改后:

# 页面标题
VUE_APP_TITLE = 外有山管理系统

# 生产环境配置
ENV = 'production'

# 若依管理系统/生产环境
VUE_APP_BASE_API = 'http://localhost:8080'

2、下载前端依赖: npm install

在这里插入图片描述


3、打包正式环境:npm run build:prod
构建打包成功后,会在根目录生成 dist 文件夹。

在这里插入图片描述


4、将dist打包发送到服务器上。

在这里插入图片描述


5、Dockerfile 文件

FROM nginx:latest
USER root
ADD nginx.conf /etc/nginx/nginx.conf
COPY dist/  /usr/share/nginx/html/
RUN chmod 775 -R /usr/share/nginx/html
expose 80

6、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;
		charset utf-8;

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

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

7、在当前路径下,构建ruoyi-vue镜像

[root@leo ruoyi-vue]# docker build -t ruoyi-vue .

8、运行ruoyi-vue容器

[root@leo ruoyi-vue]# docker run -it -p 8088:80 --name ruoyi-vue ruoyi-vue

注:退出不停止当前容器 【Ctrl + P + Q】

后端部署

1、创建数据库ry-vue并导入数据脚本ry_2021xxxx.sql,quartz.sql
2、修改application.yml里面的Redis连接参数
3、修改application-druid.yml 里面的MySQL连接参数
4、通过Maven打包项目,生成的jar包在 RuoYi-Vue\ruoyi-admin\target 目录下的 【ruoyi-admin.jar】文件。
5、将【ruoyi-admin.jar】发送到服务器上。

在这里插入图片描述

6、编写Dockerfile文件

#依赖基础为jdk:8
#FROM java:8 
FROM openjdk:8-jdk-alpine
#卷目录
VOLUME /tmp 
#captcher字体包
RUN set -xe \
&& apk --no-cache add ttf-dejavu fontconfig
Add ruoyi-admin.jar leo.jar 
#对外暴露的端口
EXPOSE 8080 
#执行命令 这一行相当于前面的 java -jar xxx.jar 也就是运行这个项目
ENTRYPOINT ["java","-jar","leo.jar"] 

7、构建ruoyi-admin镜像

[root@leo ruoyi-vue]# docker build -t ruoyi-admin .

8、运行ruoyi-admin容器

[root@leo ruoyi-vue]# docker run -it -p 8080:8080 --name ruoyi-admin ruoyi-admin

部署结果

在这里插入图片描述

常见问题

1、部署完成,验证码没有显示,试了网上的其他方法都没有解决。
原因:.env.production 文件的这里

VUE_APP_BASE_API = '/prod-api'

要改为:

VUE_APP_BASE_API = 'http://localhost:8080'

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340