IDEA2023连接服务器docker并部署ruoyi-cloud-plus项目

文章目录

  • TCP 方式连接docker
    • 1. 服务器docker配置修改
      • 查看虚拟机中Docker配置文件位置
      • 修改配置文件
      • 重启docker服务
      • 关闭防火墙
    • 2. idea安装docker插件
    • 3. idea连接docker服务
  • 部署ruoyi-cloud-plus项目
    • 1. 项目环境说明
    • 2. 安装Centos7
    • 3. 安装docker
    • 4. idea配置服务器SSH连接
    • 5. idea配置服务器FTP连接
    • 6. docker连接并部署后端项目
      • 拉取项目
      • 将配置使用FTP上传到根目录
      • 给docker文件夹分配权限
      • 构建基础服务
      • 构建应用镜像
      • 构建nacos服务
      • 将Nacos文件导入到数据库
      • 构建中心服务
      • 创建业务服务
    • 7.docker部署前端
      • 配置域名
      • 执行打包命令
      • 更改后端代理路径或者后端ip地址
        • 更改代理路径(注意: /开头/结尾)
        • 路径对应前端环境文件
        • 更改后端ip地址


idea连接docker有两种方式:一是TCP方式,二是SSH方式。本案例我们采用TCP方式连接。

本案例部署的项目:ruoyi-cloud-plus 微服务项目

部署环境采用虚拟机:192.168.187.111


TCP 方式连接docker

1. 服务器docker配置修改

查看虚拟机中Docker配置文件位置

systemctl show --property=FragmentPath docker

修改配置文件

vi /usr/lib/systemd/system/docker.service

在这里插入图片描述

# 添加远程Api启动命令
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock

重启docker服务

systemctl daemon-reload
systemctl restart docker

关闭防火墙

查看运行状态:systemctl status firewalld
关闭防火墙服务:systemctl stop firewalld
重启虚拟机也禁用防火墙:systemctl disable firewalld.service

2. idea安装docker插件

File->Settings->Plugins
在这里插入图片描述
up主使用的是idea 2023.3.2版本,软件已经自带docker插件。

3. idea连接docker服务

在这里插入图片描述
此时我们在service控制台中可以看到【快捷键alt+8】
在这里插入图片描述
双击docker 即可连接上。

部署ruoyi-cloud-plus项目

1. 项目环境说明

推荐使用 docker 安装 项目内置 docker 编排文件

注意: 需要使用 openjdk 或者 graalvm 运行程序 禁止使用 oraclejdk(由于spring的bug导致打包运行会报错)
graalvm 是oracle旗下的高性能jdk 下载地址: https://github.com/graalvm/graalvm-ce-builds/releases

  • openjdk-17/21 或 graalvm-community-jdk-17/21版本
  • mysql 5.7 8.0 (5.6未适配可能会有问题)
  • oracle 11g 12c
  • postgres 13 14
  • redis 5.X 6.X 7.X 由于框架大量使用了redis特性 版本必须 >= 5.X (win redis 下载地址)
  • minio 本地文件存储 或 阿里云 腾讯云 七牛云等一切支持S3协议的云存储
  • maven >= 3.8.X
  • nodejs 18(18以上未测试 不建议使用)
  • npm 8.X (7.X确认有问题)
  • idea 2022 2024 (一定不要使用2023后果自负 bug太多影响项目开发)
  • nacos >= 2.X(框架1.3.0内置nacos)
  • sentinel 框架内置
  • seata 框架内置

2. 安装Centos7

VMware安装Centos7系统

3. 安装docker

  • 安装docker
  • 安装docker-compose

在线安装docker

4. idea配置服务器SSH连接

进入 Settings -> Tools -> SSH Configurations 点击加号创建SSH连接配置
填写 服务器IP 用户名 密码 端口号 点击 Test Connection 测试连接
image.png使用Terminal 工具 点击箭头找到上方创建的SSH连接配置
选择即可进入SSH连接界面 在这里可以对服务器进行命令操作
image.png

5. idea配置服务器FTP连接

进入 Settings -> Build-> Deployment 点击加号 选择SFTP 创建 FTP 连接配置
选择之前创建好的SSH配置 点击 Test Connection 测试连接
image.png
在IDEA上方工具栏 找到 Tools -> Deployment -> Browse Remote Host 打开远程界面
点击箭头找到我们上方配置的SFTP连接配置 即可连接到服务器的文件目录
image.png
配置成功后,可以直接从左侧的项目中拖拽需要的文件到右侧远程服务器的目录中。

6. docker连接并部署后端项目

拉取项目

ruoyi-cloud-plus 微服务项目,并用idea打开。

将配置使用FTP上传到根目录

注意:修改项目中docker文件夹下docker-compose.yml文件
image.png

给docker文件夹分配权限

chmod -R 777 /docker

重点注意: 一定要确保目录 /docker 及其所有子目录 具有写权限 如果后续出现权限异常问题 重新执行一遍分配权限。

构建基础服务

cd /docker
docker-compose up -d mysql nginx-web redis minio 

构建应用镜像

1、修改项目中配置文件
将mysql、redis,nacos,minio 等地址进行修改。

2、将sql/ry-plus-cloud.sql、ry-plus-config.sql、ry-plus-job.sql、ry-plus-seata.sql导入到MySQL数据库。

3、跳过test并clean打包
image.png

构建nacos服务

在这里插入图片描述

在这里插入图片描述
此时已经构建好镜像,启动即可。

docker-compose up -d nacos

将Nacos文件导入到数据库

将config/nacos/xxxx.yml文件复制到nacos环境中(注意是dev)

构建中心服务

同上述步骤将seata-server、sentinel、ruoyi-monitor、ruoyi-xxl-job-admin镜像构建出来。
在这里插入图片描述

docker-compose up -d seata-server sentinel ruoyi-monitor ruoyi-xxl-job-admin

创建业务服务

同上述步骤将ruoyi-gateway、ruoyi-auth、ruoyi-system、ruoyi-resource镜像构建出来。
在这里插入图片描述

docker-compose up -d ruoyi-gateway ruoyi-auth ruoyi-system ruoyi-resource

7.docker部署前端

配置域名

# 修改文件
vi /etc/hosts

# 最后一行追加
192.168.187.111 sea.server.com

执行打包命令

npm run build:prod

打包后生成打包文件在 ruoyi-ui/dist 目录
将 dist 目录下文件(不包含 dist 目录) 上传到部署服务器 docker/nginx/html 目录下(手动部署放入自己配置的路径即可)
在这里插入图片描述
重启 nginx 服务即可

更改后端代理路径或者后端ip地址

更改代理路径(注意: /开头/结尾)

image.png

路径对应前端环境文件

image.png

更改后端ip地址

image.png

至此我们 ruoyi-cloud-plus项目部署完毕。可以在浏览器访问。


如果有收获! 希望老铁们来个三连,点赞、收藏、转发。
创作不易,别忘点个赞,可以让更多的人看到这篇文章,顺便鼓励我写出更好的博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/537323.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

局域网内部使用的视频会议系统推荐

随着远程办公的普及和全球化的发展趋势,企业需要一个高效、灵活、安全的音视频会议解决方案,以支持远程办公的协同工作、跨地域沟通等需要。私有化音视频会议就是一个适合企业自身部署的解决方案。它不仅能够满足企业信息管理和保密的需求,而…

Latent Diffusion Models

Latent Diffusion Models(潜在扩散模型,LDMs)是一种生成模型,它结合了扩散模型和变分自动编码器(VAES)的优势,从文本或其他输入模式生成高质量图像。近年来,这些模型受到了相当大的关注,因为它们能够在保持对发电过程的控制的同时产生高度现实和多样化的产出。 Laten…

【灵境矩阵】零代码创建AI智能体之行业词句助手

欢迎来到《小5讲堂》 这是《灵境矩阵》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 创建智能体选择创建方式零代码 基础配置头像名称简介指令开场白…

从零开始写 Docker(十)---实现 mydocker logs 查看容器日志

本文为从零开始写 Docker 系列第十篇,实现类似 docker logs 的功能,使得我们能够查查看容器日志。 完整代码见:https://github.com/lixd/mydocker 欢迎 Star 推荐阅读以下文章对 docker 基本实现有一个大致认识: 核心原理&#x…

git push报错remote: Please remove the file from history and try again

原因:上传文件超过100M,找到此文件删除即可。 1、查看是哪个文件过大,此处对用红框里面的 a6de1336c67c3bac77757c5eff8c8001823f7c92,得到具体的文件名称 git rev-list --objects --all | grep a6de1336c67c3bac77757c5eff8c80…

Pytest自动化测试框架完美结合Allure

简介 Allure Framework是一种灵活的、轻量级、多语言测试报告工具。 不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容, 而且还允许参与开发过程的每个人从日常执行中提取最大程度的有用信息和测试。 从开发/测试的角度来看: Allure报告可以…

静音检测电路芯片D3703F——工 作 电 压 范 围 宽 : 3.2V ~ 16.0V,可以用于汽 车 音 响 系 统

概 述 : D3703F 是 一 块 汽 车 音 响 静 音 检 测 电 路 。 用 于 音 响 系 统 检 测 在 放 音 或 快 进 / 退 时 进 行 静 音 检 测 。 D3703F 的 的 电 压 范 围 : 3.2V ~ 16V , 信 号 检 测 和 静 音 时 间 可 通 过 外 围…

私有化即时通讯软件,WorkPlus提供的私有化、安全通讯解决方案

在当今信息化快速发展的时代,安全问题已经成为各行各业关注的焦点。特别是在金融、政府单位和芯片等关键行业,信息安全的重要性不言而喻。这些行业涉及到大量的敏感数据和关键信息,一旦发生泄露,可能会对国家安全、企业利益甚至个…

JavaSE——常用API进阶二(2/8)-BigDecimal(BigDecimal的常见构造器、常用方法,用法示例,使用规范)

目录 BigDecimal BigDecimal的常见构造器、常用方法 用法示例 使用规范 在进行浮点型运算时,直接使用“ - * / ”可能会出现运算结果失真,例如: System.out.println(0.1 0.2); System.out.println(1.0 - 0.32); System.out.println(1.…

IO流【内存流、打印流、随机访问流】;初识网络编程

day37 IO流 继day36 各种流 对象流 day36 内存流 class ByteArrayInputStream – 内存输入流 class ByteArrayOutputStream – 内存输出流 注意: 内存流是程序和内存交互,跟文件无关内存流是程序到内存的通道,是关闭不掉的 应用场景&#x…

互联网轻量级框架整合之设计模式

反射技术 Java的反射技术能够通过配置类的全限定名、方法和参数完成对象的初始化,甚至反射某些方法,大大的增强了Java的可配置型,这也是Spring IoC的底层原理,Java的反射技术覆盖面很广,包括对象构建、反射方法、注解、…

(Java)数据结构——图(第七节)Folyd实现多源最短路径

前言 本博客是博主用于复习数据结构以及算法的博客,如果疏忽出现错误,还望各位指正。 Folyd实现原理 中心点的概念 感觉像是充当一个桥梁的作用 还是这个图 我们常在一些讲解视频中看到,就比如dist(-1)&#xff0…

石子合并(区间dp)-java

石子合并问题是经典的区间dp问题,我们需要枚举中间端点k的情况从而来推出dp数组的值。 文章目录 前言 一、石子合并问题 二、算法思路 1.问题思路 2.状态递推公式 二、代码如下 代码如下(示例): 2.读入数据 3.代码运行结果如下&am…

Java开发面试题分享

目录 1、简述MyISAM和InnoDB的区别 2、简述Hash和B树索引的区别 3、简述MyBatis的实现逻辑 4、#{}和${}的区别 5、简述Mybatis的优缺点 6、当实体类中的属性名和表中的字段名不一样时怎么办? 7、resultType与resultMap的区别 8、如何执行批量插入 9、Mybat…

蓝桥杯-数组切分

问题描述 已知一个长度为 N 的数组: A1,A2,A3,...AN 恰好是1~ N的一个排列。现 在要求你将 4 数组切分成若干个 (最少一个,最多 N 个)连续的子数组,并且 每个子数组中包含的整数恰好可以组成一段连续的自然数。 例如对于 4 1,3,2,4,一共有 5 种切分方法: 1324:每个单独的数显然…

(五)PostgreSQL的管理工具pgAdmin

PostgreSQL的管理工具pgAdmin pgAdmin 是一款流行的开源图形界面管理工具,用于 PostgreSQL 数据库的管理和开发。它提供了一个易于使用的界面,允许用户执行各种数据库任务,如创建和修改数据库对象(表、视图、索引等)、…

Springboot实现链路追踪功能

前言 在日常开发中,一个业务的实现往往会调用很多个方法,当我们去看日志的时候,各种接口的日志打印出来,看着就头疼,压根没办法去定位,而链路追踪就能很好的帮助我们去查看接口从头至尾依次调用了哪些方法…

UE5 在骨骼动画模型上绘制贴图

参考:Unreal 5.1 - How to paint damage textures and other effects on skeletal meshes 针对模型,在运行状态下通过射线指定一定范围,添加材质效果。 核心思路 通过射线获取命中点,作为材质参数材质中,命中的世界…

护眼台灯品牌哪个好?2024五大护眼台灯排行榜分享

​护眼台灯作为家庭中常见的照明工具,其存在几乎成为了现代生活的标配。家长们往往会为孩子购置一台,供学习和阅读使用;同时,它也是学生和办公人员在夜晚工作学习的必备之物。然而,市面上的一些普通台灯可能存在着种种…

【XR806开发板试用】使用硬件SPI驱动TFT液晶屏显示图片

【开发背景】 在完成开发板呼吸灯效果后(【XR806开发板试用】使用PWM模块模拟手机呼吸灯提示功能),考虑到显示界面过于单一,如果想要呈现更多的信息就很困难了,刚好之前买过一个TFT液晶屏,正在某个角落吃灰…