记录一下自己使用若依微服务的过程,其中很多坑,如果是大神去部署的话,分分钟的事情,我是之前没有自己去动手部署,所以踩了很多坑,记录一下,也与各位分享这款比较优秀的后台开源管理系统,二次开发很方便。
感谢若依作者的开源贡献,若依官网:RuoYi
注意:若依微服务基础版的容器全部启动的话要10个,内存不够的话不建议使用,要按需取舍,我原本的阿里云服务器就2H4G的,基础服务ruoyi-mysql、ruoyi-redis 、ruoyi-nacos起了之后,就1.6-1.7G这样,起了微模块之后,直接把内存干爆了,被办法只能升级内存了,升级到2H8G,才勉强,我还是没有启动job和monitor的情况下就占了6.1G了, 所以各位按需取舍,有实力的当我没说哈哈哈哈哈
基础服务
- ruoyi-mysql:数据库服务
- ruoyi-redis:redis服务
- ruoyi-nacos: nacos服务
- ruoyi-nginx:nginx服务
- ruoyi-gateway:网关服务
- ruoyi-auth:鉴权服务
微服务模块
- ruoyi-modules-system:系统模块服务
- ruoyi-modules-gen:代码生成服务
- ruoyi-modules-file:文件服务
- ruoyi-modules-job:定时任务服务
com.ruoyi
├── ruoyi-ui // 前端框架 [80]
├── ruoyi-gateway // 网关模块 [8080]
├── ruoyi-auth // 认证中心 [9200]
├── ruoyi-api // 接口模块
│ └── ruoyi-api-system // 系统接口
├── ruoyi-common // 通用模块
│ └── ruoyi-common-core // 核心模块
│ └── ruoyi-common-datascope // 权限范围
│ └── ruoyi-common-datasource // 多数据源
│ └── ruoyi-common-log // 日志记录
│ └── ruoyi-common-redis // 缓存服务
│ └── ruoyi-common-seata // 分布式事务
│ └── ruoyi-common-security // 安全模块
│ └── ruoyi-common-sensitive // 数据脱敏
│ └── ruoyi-common-swagger // 系统接口
├── ruoyi-modules // 业务模块
│ └── ruoyi-system // 系统模块 [9201]
│ └── ruoyi-gen // 代码生成 [9202]
│ └── ruoyi-job // 定时任务 [9203]
│ └── ruoyi-file // 文件服务 [9300]
├── ruoyi-visual // 图形化管理模块
│ └── ruoyi-visual-monitor // 监控中心 [9100]
├──pom.xml // 公共依赖
一、linux安装Docker
轻量级日志系统docker-compose搭建Loki+Grafana+Promtail,配置、部署,查询全流程_loki docker-compose-优快云博客
传送门,我写的博客里面有docker compose的安装,第一点
二、linux安装Docker Compose
轻量级日志系统docker-compose搭建Loki+Grafana+Promtail,配置、部署,查询全流程_loki docker-compose-优快云博客
传送门,我写的博客里面有docker compose的安装,第二点
三、linux安装解压工具
在你想要下载的目录执行下面的命令,我放的目录是/home下
wget http://www.rarlab.com/rar/rarlinux-x64-5.0.0.tar.gz
tar -zxvf rarlinux-x64-5.0.0.tar.gz
make && make install
如果出现问题,
-bash: /usr/local/bin/unrar: /lib/ld-linux.so.2: bad ELF interpreter: 没有那个文件或目录
解决办法 这是由于不兼容,安装64位的5.0.0版本解决
三、GIT拉取若依微服务项目
git clone https://gitee.com/y_project/RuoYi-Cloud.git
四、前端页面编译、打包
执行一下命令:
npm install
npm run build:prod
五、修改项目中的nacos配置(这个步骤很重要)
idea全局替换127.0.0.1:8848,改为 ruoyi-nacos:8848
六、IDEA打包,编译
七、Git bash运行copy.sh脚本
打开git bash界面
sh copy.sh
八、复制项目到云服务器
九、解压上传的压缩文件
我的路径是在home下直接解压,因为压缩包是rar的,所以用unrar命令
unrar x docker.rar
十、对脚本赋权限
chmod +x deploy.sh
十一、转换脚本格式
直接运行的后果:/bin/sh^M:损坏的解释器: 没有那个文件或目录
原因:在windows下编辑的脚本文件,为DOS格式
解决方法:
1.使用用DOS2UNIX转为UNIX格式
2.执行文件前,先执行 sed -i 's/\r$//' xxx.sh,进行替换操作;然后再执行
sed -i 's/\r$//' deploy.sh
3.使用vim命令,打开文件执行
:set ff=unix
:wq
十二、开启所需端口
./deploy.sh port
十三、启动基础环境(必须)
./deploy.sh base
然后先连接MYSQL数据库,不然有可能nacos会报错,访问不了
十四、打开数据库以及nacos,修改配置文件
浏览器输入:服务器的IP:8848/nacos,账号密码都是nacos
将配置文件的redis配置localhost修改为ruoyi-redis
将数据库的链接中的localhost改为ruoyi-mysql
修改后点击发布即可
十五、启动程序模块(必须)
./deploy.sh modules
启动后登录页面,http://xxx.xxx.xxx.xxx/login
十六、踩坑内容
- 第五点的修改nacos的配置
- 脚本的授权,权限不够大会报错,第十点
- 脚本的格式问题,在第十一点就有提到
- 这个点比较坑,我不知道是不是因为mysql的链接数量过大导致的mysql容器自动down掉,然后数据库的数据全没了,得重新启动数据库,然后执行前面的SQL脚本(后续还需要观察)
docker restart 容器的ID
后面修改了一下docker-compose文件的ruoyi-mysql:下添加,
restart: always #跟随docker的启动而启动
docker-compose文件的mysql服务如下:
ruoyi-mysql:
container_name: ruoyi-mysql
image: mysql:5.7
build:
context: ./mysql
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-zone=+8:00',
'--lower-case-table-names=1'
]
restart: always
environment:
MYSQL_DATABASE: 'ry-cloud'
MYSQL_ROOT_PASSWORD: xxxxxxxxxxxxxxxxxx
之后关闭mysql容器,重新执行
./deploy.sh base
现在已经稳定了,