当前位置: 首页 > news >正文

RuoyiAdmin项目搭建及Docker 部署备忘

下载前后分离版,ruoyi: 项目扩展 | RuoYi   

https://gitee.com/Double_AutoEE/AutoEE

这个是vite antdv

1.安装好后端基础:改端口、配接口、建数据库,前端下载后: npm install   npm run dev

2.新建一个模块,包括完整的数据流程,包名尽量用 com.ruoyi.xxx,这样Controller直接使用,不用在RuoyiApplication.java中再配置@ComponentScan({"com.testname."})

3.新建模块的POM里加上:

<dependencies><dependency><groupId>com.ruoyi</groupId><artifactId>ruoyi-common</artifactId></dependency>
</dependencies>

ruoyi-admin的pom里加上:

<dependency><groupId>com.ruoyi</groupId><artifactId>piaopiaoruo</artifactId><version>${ruoyi.version}</version>
</dependency>

4.将原项目中的mybatis 替换为 Mybatis-plus :参考 若依前后端分离版本原生mybatis替换mybatis-plus详细教程_mybatis_会飞的三胖子-RuoYi 若依

主pom中加入 依赖:

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version>
</dependency>

在common 及framework中加入 子依赖:

<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId>
</dependency>framework的config 中,去掉 mybatisconfig.java, 加入 mybatisplusconfig.java:
@Configurationpublic class MybatisPlusConfig {@Bean   //解决 Page total 一直为0的情况public MybatisPlusInterceptor mybatisPlusInterceptor(){MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2));return interceptor;}
}

最后 admin 主类加上:

@MapperScan("com.ruoyi.piao.dao")

5.Docker 部署:

FROM openjdk:8
EXPOSE 1024
VOLUME /tmp
ADD ./target/ruopiao.jar  /ruopiao.jar
RUN bash -c 'touch /ruopiao.jar'
ENTRYPOINT ["java","-jar","/ruopiao.jar"]

把Dockerfile 及jar 上传到 服务器,运行:

docker build -t ruopiao .

docker run -d -p 1024:1024 --name piaoruo --restart always ruopiao

镜像必须是最后一个,执行过最自动启动了,不用再docker start piao

(上面加restart就不用这一行了)docker update piaoruo --restart=always 

6.在package.json中添加:

"build:prod": "vite build --mode prod",

即可按 npm run build:prod   打包 ,部署前端。

相关文章:

  • 【FreeRTOS】创建第一个多任务程序
  • Polar Web【简单】upload
  • 苹果WWDC重磅发布的IOS 18、Apple Intelligence背后的技术分析!
  • [消息队列 Kafka] Kafka 架构组件及其特性(二)Producer原理
  • 【通信协议-RTCM】RTCM通信协议常用英文缩写词汇对照表
  • CCNA 0基础入门
  • AOSP12隐藏首页搜索框----隐藏google 搜索栏
  • 高考之后第一张大流量卡应该怎么选?
  • vue3 递归循环展示下级盒子
  • GLM4-Chat-1M(号称可以输入200万字)的长文本测试结果(推理时间,推理效果)
  • 主成分分析学习
  • 仓库风格-系统架构师(九)
  • Mysql分组如何使用
  • GoogleDeepMind联合发布医学领域大语言模型论文技术讲解
  • GO语言 环境搭建
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • Babel配置的不完全指南
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • chrome扩展demo1-小时钟
  • docker python 配置
  • GitUp, 你不可错过的秀外慧中的git工具
  • webpack+react项目初体验——记录我的webpack环境配置
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 翻译--Thinking in React
  • 记录一下第一次使用npm
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 深度学习入门:10门免费线上课程推荐
  • 使用 Docker 部署 Spring Boot项目
  • 小程序开发中的那些坑
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • UI设计初学者应该如何入门?
  • 扩展资源服务器解决oauth2 性能瓶颈
  • ​第20课 在Android Native开发中加入新的C++类
  • ​如何使用ArcGIS Pro制作渐变河流效果
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • ### RabbitMQ五种工作模式:
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (9)目标检测_SSD的原理
  • (CVPRW,2024)可学习的提示:遥感领域小样本语义分割
  • (笔记)Kotlin——Android封装ViewBinding之二 优化
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (佳作)两轮平衡小车(原理图、PCB、程序源码、BOM等)
  • (心得)获取一个数二进制序列中所有的偶数位和奇数位, 分别输出二进制序列。
  • (转)C#调用WebService 基础
  • (转)jdk与jre的区别
  • .halo勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET Core 和 .NET Framework 中的 MEF2
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET Standard 的管理策略
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .Net环境下的缓存技术介绍