• 【docker快速部署微服务若依管理系统(RuoYi-Cloud)】


    工作原因,需要一个比较完整的开源项目测试本公司产品。偶然发现RuoYi-Cloud非常适合,它有足够多的中间件,而且官方提供docker安装,但我本人在安装过程中遇到了很多坑,在这里记录一下防止下次会再次遇到。

    项目地址

    https://gitee.com/y_project/RuoYi-Cloud

    环境

    内存至少16G,处理器至少4核
    内存小于16G,时间长了会导致响应过慢,经常出现响应超时的情况。

    docker部署

    1. 把所有127.0.0.1和localhost全部代替为主机IP或者具体的服务名(如:ruoyi-mysql)。

        http://localhost:8080/swagger-ui/index.html -> http://[ip]:8080/swagger-ui/index.html
        http://localhost:8848/nacos - > http://[ip]:8848/nacos
        http://localhost:9100/login - > http://[ip]:9100/login
        127.0.0.1:9300 -> [ip]:9300
      
        127.0.0.1:8848\localhost:8848 -> ruoyi-nacos:8848
        localhost\n    port: 6379 -> ruoyi-redis\n    port: 6379
        localhost:3306 -> ruoyi-mysql:3306
      
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8

    一次性脚本

    find . -type f -exec sed -i 's#http://localhost:8080/swagger-ui/index.html#http://10.0.2.52:8080/swagger-ui/index.html#g' {} +
    find . -type f -exec sed -i 's#http://localhost:8848/nacos#http://10.0.2.52:8848/nacos#g' {} +
    find . -type f -exec sed -i 's#http://localhost:9100/login#http://10.0.2.52:9100/login#g' {} +
    find . -type f -exec sed -i 's#127.0.0.1:9300#10.0.2.52:9300#g' {} +
    
    find . -type f -exec sed -i 's#127.0.0.1:8848#ruoyi-nacos:8848#g' {} +
    find . -type f -exec sed -i 's#localhost:8848#ruoyi-nacos:8848#g' {} +
    echo "\要转译为\\\\"
    find . -type f -exec sed -i 's#localhost\\n    port: 6379#ruoyi-redis\\n    port: 6379#g' {} +
    find . -type f -exec sed -i 's#localhost:3306#ruoyi-mysql:3306#g' {} +
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    注意:10.0.2.52是我自己的物理机IP

    图省事可以直接所有127.0.0.1和localhost全部代替为主机IP,但我为了模拟真实场景,使用的是服务名

    1. 编译后端代码
    cd RuoYi-Cloud
    mvn clean install
    
    • 1
    • 2
    1. 编译前端代码
    cd ruoyi-ui
    npm install
    npm run build:prod
    
    • 1
    • 2
    • 3
    1. 修改脚本copy.sh

    进入目录

    cd ../docker
    vim copy.sh
    
    • 1
    • 2

      cp ../sql/ry_20230223.sql ./mysql/db
      cp ../sql/ry_config_20220929.sql ./mysql/db
    
    • 1
    • 2

    改为

      cp ../sql/*.sql ./mysql/db
    
    • 1
    1. 把前后端包,以及sql文件带到指定位置
    sh copy.sh
    
    • 1
    1. 修改docker-compose.yml
    • 有“build:”配置的服务,都要把“image:”给注释掉,否则“build:”是不生效的,走的还是“image:”,拉的是远程的镜像。
    sed -i 's/    image:/    #image:/g' docker-compose.yml
    
    • 1
    1. 运行基础服务
    sh deploy.sh base
    
    • 1

    查看日志,可能会发现nacos会报错,是因为mysql没有完全启起来,重新启动nacos即可。

    移动要全部运行完才能走下面的步骤

    1. 启动所有应用
    docker-compose up -d
    
    • 1
    1. 查看各个服务的状态
    docker-compose ps
    
    • 1
    1. 查看整体服务的日志
    docker-compose logs -f
    
    • 1

    遇到的问题

    1. 字符集
    vim windows.sh
    :set ff=unix
    :wq
    
    • 1
    • 2
    • 3
    1. 安装docker-compose
    yum remove python-pip
    wget https://bootstrap.pypa.io/pip/2.7/get-pip.py
    python get-pip.py
    pip install docker-compose
    
    • 1
    • 2
    • 3
    • 4
    1. docker-compose up -d失败
      报错信息
    ERROR [ruoyi-gateway 1/4] FROM docker.io/library/openjdk:8-jre@sha256……
    ……
    failed to solve: failed to read expected number of bytes: unexpected EOF
    
    • 1
    • 2
    • 3

    需要手动pull镜像,原因未知,可能跟源有关

    docker pull openjdk:8-jre
    
    • 1

    成功图:
    在这里插入图片描述
    在这里插入图片描述
    如有问题,可以来交流交流:
    手机\微信号:15385125253
    如有帮助的可以支持一下:

    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    二、电脑装机实践
    ChatGPT技术原理
    文心一言 VS 讯飞星火 VS chatgpt (118)-- 算法导论10.3 3题
    基于51单片机PCF8591数字电压表数码管显示设计( proteus仿真+程序+设计报告+讲解视频)
    基于SSM的宿舍管理系统
    数据仓库与hive
    【day09】继承、super、this、抽象类
    江西财经大学智慧江财登录分析
    64ELK日志分析系统
    设计模式之解释器模式
  • 原文地址:https://blog.csdn.net/weixin_42286276/article/details/132763832