docker学习记录-部署若依springcloud项目

使用docker compse部署RuoYi v3.6.4

一、打包代码

  1. Java代码

打包前需要将127.0.0.1改成宿主机ip, 使用docker部署的nacos,应该是要改成ruoyi-nacos(docker中的服务容器名)。

在这里插入图片描述 使用idea
window系统可能没有sh命令,不能执行sh copy.sh。
打完包,需要在/RuoYi-Cloud/docker执行sh copy.sh,目的是将打的jar包放到docker里面的jar文件夹下。
使用idea的maven插件打包

在这里插入图片描述
不能执行sh copy.sh,需要仔细阅读以下文件,手动复制。
在这里插入图片描述

  1. vue代码
    ruoyi-ui的vue文件打完后/dist整个文件夹需要放到/RuoYi-Cloud/docker/nginx/html下
    ps:记得先安装依赖,依赖安装过的跳过。
# 安装依赖
npm install

使用命令打包

npm run build:prod

或者
在这里插入图片描述

二、Docker部署

ps:根据本人电脑已安装的软件,进行配置安装。需要安装docker和docker compose。
已安装:mysql、nacos、redis.

  1. nacos配置
    nacos的配置管理器是需要读取数据库的,也可以按官网的源文件docker-compose执行。
    需要修改连接mysql、redis的配置host,我改成自己的ip,修改mysql配置需要重启docker 对应服务的容器。
    在这里插入图片描述

  2. 修改docker-compose.yml配置
    说明:

  • gateway网关地址8080改成了8085,在ruoyi-gateway/src/main/resources/bootstrap.yml修改,记得凡是改了yml都需要重新打包。
  • Nginx使用8087端口,这是基础镜像,对应前端访问的端口号,配置了什么,启动完成后就用这个8087访问静态资源。
  • docker-compose.yml文件会将没有的镜像自动下载,yml中不指定版本默认下载最新版本。
    在这里插入图片描述 说明:ruoyi-ui的vue文件打完包需要放到/RuoYi-Cloud/docker/nginx/html下
version : '3.8'
services:ruoyi-gateway:container_name: ruoyi-gatewaybuild:context: ./gatewaydockerfile: dockerfileports:- "8085:8085"ruoyi-auth:container_name: ruoyi-authbuild:context: ./authdockerfile: dockerfileports:- "9200:9200"ruoyi-modules-system:container_name: ruoyi-modules-systembuild:context: ./modules/systemdockerfile: dockerfileports:- "9201:9201"ruoyi-modules-gen:container_name: ruoyi-modules-genbuild:context: ./modules/gendockerfile: dockerfileports:- "9202:9202"ruoyi-modules-job:container_name: ruoyi-modules-jobbuild:context: ./modules/jobdockerfile: dockerfileports:- "9203:9203"ruoyi-modules-file:container_name: ruoyi-modules-filebuild:context: ./modules/filedockerfile: dockerfileports:- "9300:9300"volumes:- ./uploadPath:/home/ruoyi/uploadPathruoyi-nginx:container_name: ruoyi-nginximage: nginxbuild:context: ./nginxports:- "8087:80"volumes:- ./nginx/html/dist:/home/ruoyi/projects/ruoyi-ui- ./nginx/conf/nginx.conf:/etc/nginx/nginx.conf- ./nginx/logs:/var/log/nginx- ./nginx/conf.d:/etc/nginx/conf.ddepends_on:- ruoyi-gatewaylinks:- ruoyi-gateway

nginx的配置文件
/RuoYi-Cloud/docker/nginx/conf/nginx.conf

http://ruoyi-gateway:8085/

  • ruoyi-gateway对应容器id
  • 8085改成自己gateway的配置
    在这里插入图片描述
  1. Mysql设置允许通过ip访问(非docker的mysql)
    ps:解决ruoyi-system服务启动后,mysql连接不上问题
# 进入mysql
mysql -u root -p# 执行以下命令
use mysql;select user,host from user;# 修改host字段,允许所有ip访问,也可以指定
update user set host='%' where host='localhost';# 确认一下是不是修改成功了:
select user,host from user;# 刷新一下
flush privileges;
  1. redis设置允许通过ip访问(非docker的redis)
    ps:解决ruoyi-gateway服务启动后,redis连接不上问题
# 1.修改配置文件
/opt/homebrew/etc/redis.conf# 1.1修改内容
# 为了允许外部访问 Redis,需要将 bind 设置为 0.0.0.0
bind 0.0.0.0
# 值为yes表示开启远程保护,不允许本地以外访问
protected-mode yes# 2.重启服务
brew services restart redis
  1. 启动docker-compose
    在docker-compose.yml下,执行
# 启动所有docker-compose服务并后台运行(一次性启动)
docker-compose up -d # 启动基础环境(指定)
docker-compose up -d ruoyi-mysql ruoyi-redis ruoyi-nacos# 启动程序模块(指定)
docker-compose up -d ruoyi-nginx ruoyi-gateway ruoyi-auth ruoyi-modules-system# 停止并删除容器、网络、卷、镜像。   
docker-compose down   # 重启服务
docker-compose restart# 重启服务单个
docker-compose restart [yml里面的服务id]
docker-compose restart nginx
docker-compose restart ruoyi-gateway# 启动服务
docker-compose start     
# 停止服务,关闭所有环境/模块
docker-compose stop  
# 查看容器输出日志
docker-compose logs  yml里面的服务id  # 删除所有环境/模块   
docker-compose rm    
  1. 完成
    http://localhost:8848/nacos
    nacos服务端口号8848,各个微服务启动成功后,会自动注册到nacos服务列表,注册成功后等几秒钟访问nginx服务的地址xxx.xx.xx.x:8087。
    在这里插入图片描述
# 查看容器
docker ps -a

在这里插入图片描述

  1. 故障判断
  • 如果遇到对应ruoyi-xxx启动失败,怎么解决问题?
    首先需要知道出什么问题,查看日志。
    查看前端对应的服务接口,找到对应出错的服务,查看日志和idea运行类似,根据日志报错信息,网上找解决方案。
# 查看所有容器,包含运行失败的
docker ps -a
# 查看正运行的
docker ps
# 查看日志log看报错
docker logs [CONTAINER ID]
## 例如:认证授权中心出错,具体某个接口访问“内部服务器错误”
docker logs ruoyi-authdocker logs ruoyi-gateway
## nginx,前端访问不了,需要nginx容器是否启动成功
docker logs nginx

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车损坏识别检测数据集,使用yolo,pasical voc xml,coco json格式标注,6696张图片,可识别11种损坏类型,识别率89.7%

汽车损坏识别检测数据集,使用yolo,pasical voc xml,coco json格式标注,6696张图片,可识别11种损坏类型损坏: 前挡风玻璃(damage-front-windscreen ) 损坏的门 (damaged-d…

WPF使用OpenCvSharp4

WPF使用OpenCvSharp4 创建项目安装OpenCvSharp4 创建项目 安装OpenCvSharp4 在解决方案资源管理器中,右键单击项目名称,选择“管理 NuGet 包”。搜索并安装以下包: OpenCvSharp4OpenCvSharp4.ExtensionsOpenCvSharp4.runtime.winSystem.Man…

Nature+Science=ONNs(光学神经网络)

2024深度学习发论文&模型涨点之——光学神经网络 光学神经网络(Optical Neural Networks, ONNs)是一种利用光学器件(如激光、光学调制器、滤波器、探测器等)来模拟和实现神经网络推理功能的计算模型。这种网络通过利用光信号的…

计算机体系结构期末复习3:GPU架构及控制流问题

目录 一、GPU设计思路 1.简化流水线、增加核数 2.单指令多线程(SIMT) 3.同时驻留大量线程 4.总思路:多线程单指令多线程 二、GPU的控制流问题 1.什么是控制流问题 2.怎么应对分支分歧 一、GPU设计思路 1.简化流水线、增加核数 2.单指…

三大行业案例:AI大模型+Agent实践全景

本文将从AI Agent和大模型的发展背景切入,结合51Talk、哈啰出行以及B站三个各具特色的行业案例,带你一窥事件驱动架构、RAG技术、人机协作流程,以及一整套行之有效的实操方法。具体包含内容有:51Talk如何让智能客服“主动进攻”&a…

Vben5登录过期无法再次登录问题,http状态码

个人博客:无奈何杨(wnhyang) 个人语雀:wnhyang 共享语雀:在线知识共享 Github:wnhyang - Overview 前言 最近在做项目前端,使用的https://doc.vben.pro/,在登录过期时出现了无法…

Doris安装部署

Doris 概述 Apache Doris由百度大数据部研发(之前叫百度 Palo,2018年贡献到 Apache 社区后,更名为 Doris ),在百度内部,有超过200个产品线在使用,部署机器超过1000台,单一业务最大可…

基于单片机的多功能视力保护器(论文+源码)

1.系统设计 多功能视力保护器在设计过程中能够对用户阅读过程中的各项数据信息进行控制,整体设计分为亮种模式,分别是自动模式,手动模式。在自动模式的控制下,当单片机检测当前光照不强且有人时就开启LED灯,并且会根据…

如何在 Ubuntu 22.04 上部署 Nginx 并优化以应对高流量网站教程

简介 本教程将教你如何优化 Nginx,使其能够高效地处理高流量网站。 Nginx 是一个强大且高性能的 Web 服务器,以其高效处理大量并发连接的能力而闻名,这使得它成为高流量网站的流行选择。 正确优化 Nginx 可以显著提高服务器的性能&#xff0…

【持续更新中】transformer详解和embedding大模型

这里记录一下自己学习embedding大模型的记录,涉及到transformer和bert这些。 一切都可以编码,比如说图片是三原色 背景介绍 训练集和测试集的分,无监督学习,现在基本都是使用无监督学习,有监督学习的话参考计算机视觉…

csrf跨站请求伪造(portswigger)无防御措施

前言:基础csrf学习(没有任何防御措施) 内容来自portswigger,一个靶场练习,国外的网站,可能需要翻墙 要使 CSRF 攻击成为可能,必须满足三个关键条件: 相关操作。应用程序中存在攻击…

cocos creator 3.x版本如何添加打开游戏时首屏加载进度条

前言 项目有一个打开游戏时添加载入进度条的需求。这个功能2.X版本是自带的,不知为何在3.X版本中移除了。 实现 先说一下解决思路,就是在引擎源码加载场景的位置插入一个方法,然后在游戏入口HTML处监听即可。 1.找到对应源码脚本 在coco…

Zookeeper在中间件的应用和在Spring Boot业务系统中实现分布式锁和注册中心的解决方案

前言 Zookeeper是什么? ZooKeeper 是一个开放源码的分布式协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终,将简单易用的接口和性能高效、功能稳定的系统提供给用户。 分布式应…

idea报错:There is not enough memory to perform the requested operation.

文章目录 一、问题描述二、先解决三、后原因(了解) 一、问题描述 就是在使用 IDEA 写代码时,IDEA 可能会弹一个窗,大概提示你目前使用的 IDEA 内存不足,其实就是提醒你 JVM 的内存不够了,需要重新分配。弹…

Anaconda+PyTorch(CPU版)安装

1.Anaconda下载 Index of /anaconda/archive/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror 如果已安装python,下载之前要彻底删除之前下载的python 2.Anaconda安装 3.添加环境变量 //根据实际安装路径进行更改 D:\Anaconda D:\Anaconda\Scripts D:\…

使用apisix+oidc+casdoor配置微服务网关

一、服务架构图 二、安装配置 1. 安装配置apisix (1). 快速启动及验证: curl -sL https://run.api7.ai/apisix/quickstart | sh该命令启动 apisix-quickstart 和 etcd 两个容器,APISIX 使用 etcd 保存和同步配置。APISIX 和 etcd 容器使用 Docker 的 …

【数据仓库】hadoop3.3.6 安装配置

文章目录 概述下载解压安装伪分布式模式配置hdfs配置hadoop-env.shssh免密登录模式设置初始化HDFS启动hdfs配置yarn启动yarn 概述 该文档是基于hadoop3.2.2版本升级到hadoop3.3.6版本,所以有些配置,是可以不用做的,下面仅记录新增操作&#…

STM32中断详解

STM32中断详解 NVIC 中断系统中断向量表相关寄存器中断优先级中断配置 外部中断实验EXTI框图外部中断/事件线映射中断步骤初始化代码实现 定时器中断通用定时器相关功能标号1:时钟源标号 2:控制器标号 3:时基单元 代码实现 NVIC 中断系统 STM…

常见的中间件漏洞

1.tomcat 1.1 CVE-2017-12615(put上传) 当在Tomcat的conf(配置目录下)/web.xml配置文件中添加readonly设置为false时,将导致该漏洞产 ⽣,(需要允许put请求) , 攻击者可以利⽤PUT方法通过精心构造的数据包…

【JAVA】神经网络的基本结构和前向传播算法

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…