wuxin0011`blog wuxin0011`blog
首页
  • 基础内容

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • JavaScript教程
    • ES6 教程
    • Vue
    • React
    • Typescript
    • Git
  • 推荐阅读
  • java随笔
  • JVM (opens new window)
  • 分类
  • 标签
  • 归档
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • git使用
  • docker部署项目
  • 错误收集
  • github-start
  • background-color
  • live-server
  • vscode-cpp-config
  • tampermonkey-script (opens new window)
  • leetcode-tool (opens new window)
  • 网站
  • 前端
  • 后端
  • Github Topic (opens new window)
GitHub (opens new window)

wuxin0011

懂得越多,懂得越少
首页
  • 基础内容

    • HTML
    • CSS
    • JavaScript
  • 进阶

    • JavaScript教程
    • ES6 教程
    • Vue
    • React
    • Typescript
    • Git
  • 推荐阅读
  • java随笔
  • JVM (opens new window)
  • 分类
  • 标签
  • 归档
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • git使用
  • docker部署项目
  • 错误收集
  • github-start
  • background-color
  • live-server
  • vscode-cpp-config
  • tampermonkey-script (opens new window)
  • leetcode-tool (opens new window)
  • 网站
  • 前端
  • 后端
  • Github Topic (opens new window)
GitHub (opens new window)
  • 博客搭建

  • 项目部署

    • Ruoyi-Cloud项目基于Docker的部署
      • 使用自定义vuepress模板部署
    • 错误收集

    • 技术
    • 项目部署
    wuxin0011
    2023-02-20
    目录

    Ruoyi-Cloud项目基于Docker的部署

    # 1、第一步拉取代码

    git clone https://gitee.com/y_project/RuoYi-Cloud.git
    
    1

    # 2、打包前端项目

    • 安装前检查 Node 是否安装
    • 注意不要安装版本太高!最好选择 16.x版本 , 下载 (opens new window)
    • 下载依赖
    • 打包

    下载Node

    注意配置Node环境变量,配置完毕后,之前打开的 cmd 窗口要关闭才能生效!

    下载依赖 执行 \ruoyi-ui\bin 目录下的脚本

    .\ruoyi-ui\bin\package.bat
    
    1

    打包 \ruoyi-ui\bin目录下的脚本

    .\ruoyi-ui\bin\build.bat
    
    1

    # 3、后端服务Java接口打包

    • 修改 host 地址
    • 执行 bin 目录下的 clean.bat
    • 打包,执行 bin 目录下的 package.bat

    修改 host 地址,将 host 地址修改为对应在服务器上部署的 服务名

    例如修改 ruoyi-modules-system 服务

    修改之前

     # 未修改之前
    discovery:
            # 服务注册地址
            server-addr: localhost:8848
          config:
            # 配置中心地址
            server-addr:  localhost:8848
    
    
    1
    2
    3
    4
    5
    6
    7
    8

    修改之后

    discovery:
            # 服务注册地址
            server-addr:  ruoyi-nacos:8848
          config:
            # 配置中心地址
            server-addr:  ruoyi-nacos:8848
    
    
    1
    2
    3
    4
    5
    6
    7

    ​

    其他服务参照这个操作 修改!

    一定要对应 docker-compose.yml 文件中的服务名 !!!

    注意检查 mvn 命令是否生效,如果不生效请配置maven环境变量

    清除之前缓存,否则会导致修改配置不生效

    .\bin\clean.bat
    
    1

    打包

    .\bin\clean.bat
    
    1

    # 4、上传到服务器

    将之前打包好的各个项目打包拷贝到 docker 目录

    可以直接 执行拷贝脚本

    .\docker\copy.sh
    
    1

    注意:官方给的 copy.sh 脚本拷贝命令可能导致一些文件拷贝不全

    • 检查 sql 脚本是否拷贝完全 参考 sql/*sql
    • 检查 docker/nginx/html/dist 目录中是否含有文件 参考 ruoyi-ui/dist 如果 IDE 中找不到,是因为 IDE 中屏蔽了,可以到本地资源管理器,的该目录下拷贝到对应文件加中
    • 注意 jar包是否打包完全到 /docker/ruoyi/*/jar/ 目录下

    下面给出参考图

    ​

    ​

    将项目中整个docker目录上传到服务器,例如 /usr/local/project/ruoyi-cloud

    完毕之后将 docker 文件加上传到服务器中,接下来就是部署了

    # 5、项目部署

    # 1、安装docker和docker-compose

    • 安装 docker (opens new window)
    • 安装docker-compose (opens new window)

    补充:

    1、添加 docker 镜像源

    vim /etc/docker/daemon.json
    
    1
    {
      "registry-mirrors": ["https://ezs5jiab.mirror.aliyuncs.com"]
    }
    
    1
    2
    3

    重启生效

    systemctl daemon-reload
    systemctl restart docker
    
    1
    2

    2、 官方 docker-compose 安装有点慢,执行这个命令可能快点

    curl -SL https://get.daocloud.io/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
    
    1

    不要忘了安装完毕之后給文件添加可执行命令

    chmod +x /usr/local/bin/docker-compose
    
    1

    检查是否安装成功,输出对应版本号就是安装成功了

    docker-compose version
    
    1

    # 2、清空安装环境

    为什么要清空之前的镜像?

    本人安装之前吃过亏,之前安装失败没有修改本地host,导致部署失败。

    修改之后在上传,如果不删除之前的容器和镜像,会继续部署失败!😭

    因为 docker build 之前检查是否有这个镜像

    如果有这个镜像会基于这个镜像,构建容器,结果当然是失败了!🤣

    没有才会重新构建容器

    删除容器

    查看是否有容器

    docker ps -a
    
    1

    如果有容器执行该命令,没有就不要执行了

    docker rm -f $(docker ps -aq)
    
    1

    删除镜像

    通过docker images 查看已经安装的镜像

    docker images
    
    1

    注意不建议删除 nacos、mysql、redis,nginx镜像

    如下删除红框中的容器

    REPOSITORY                    TAG       IMAGE ID       CREATED         SIZE
    docker-ruoyi-modules-system   latest    c755d24e3e7d   4 hours ago     379MB
    docker-ruoyi-gateway          latest    8976e5938ec7   4 hours ago     372MB
    docker-ruoyi-auth             latest    99f438b7efb7   4 hours ago     364MB
    nginx                         latest    605c77e624dd   13 months ago   141MB
    redis                         latest    7614ae9453d1   14 months ago   113MB
    mysql                         5.7       c20987f18b13   14 months ago   448MB
    mysql                         8.0       3218b38490ce   14 months ago   516MB
    nacos/nacos-server            latest    bdf60dc2ada3   18 months ago   1.05GB
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    ​

    镜像删除

    docker rmi -f 镜像ID
    
    1

    例如删除 三个 ruoyi-gateway 、ruoyi-auth、ruoyi-modules-system 三个容器镜像

    docker rmi -f c755d24e3e7d 8976e5938ec7 99f438b7efb7
    
    1

    # 3 、docker-compse 构建服务

    注意以下命令都是在 刚刚上传docker文件夹下

    -bash-4.2# ls
    copy.sh  deploy.sh  docker-compose.yml  mysql  nacos  nginx  redis  ruoyi
    -bash-4.2# pwd
    /root/docker
    
    1
    2
    3
    4

    1、启动 基础服务

    • MySQL服务
    • Redis 服务
    • Nacos 服务
    docker-compose up -d ruoyi-mysql ruoyi-redis ruoyi-nacos
    
    1

    不要急于开启其他服务,服务开启后检查 MySQL 中是否执行了 sql 脚本

    也可以通过 mysql 可视化工具操作,如果没有对应数据库,可导入之前的 sql 脚本

    ​

    如果没有可视化工具,可通过容器命令进入数据库容器操作安装脚本

    docker exec  -it ruoyi-mysql mysql -uroot -ppassword
    
    1
    create datebase ry-config if not exist charset uft8
    source /tmp/*sql
    exit
    exit
    
    
    1
    2
    3
    4
    5

    数据库没问题之后检查 nacos 服务是否可用

    docker-compose logs -f ruoyi-nacos
    
    1

    ​

    注意:如果服务报错 xxx NoDataSource xxx 之类错误,大概率是数据库没有对应表或者数据库连接不上

    例如

    Caused by: java.lang.IllegalStateException: No DataSource set
    	at org.springframework.util.Assert.state(Assert.java:73)
    	at org.springframework.jdbc.support.JdbcAccessor.obtainDataSource(JdbcAccessor.java:77)
    	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:371)
    	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:452)
    	at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:462)
    	at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:473)
    	at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:480)
    	at com.alibaba.nacos.config.server.service.repository.extrnal.ExternalStoragePersistServiceImpl.findConfigMaxId(ExternalStoragePersistServiceImpl.java:658)
    	at com.alibaba.nacos.config.server.service.dump.processor.DumpAllProcessor.process(DumpAllProcessor.java:51)
    	at com.alibaba.nacos.config.server.service.dump.DumpService.dumpConfigInfo(DumpService.java:293)
    	at com.alibaba.nacos.config.server.service.dump.DumpService.dumpOperate(DumpService.java:205)
    	... 61 common frames omitted
    
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14

    此为数据库连接不上!数据库没问题,那么重启这个服务

    docker-compose restart ruoyi-nacos
    
    1

    可在浏览器中检查是否可用 http://192.168.233.40:8848/nacos/

    ​

    然后就是按照上图所示修改各个服务的配置文件,主要有

    • 连接 mysql 的将 localhost:3360 ,修改为 mysql服务名:port 例如 ruoyi-mysql:3306

      注意: 如果不将 连接地址URL 的

    • redis 同 上面 mysql 服务,将连接redis的,修改为 ruoyi-redis

    • 其他服务同理

    修改 redis 连接

    ​

    修改 mysql 连接

    ​

    修改 mysql useSSL=false

    ​

    2、启动

    • 网关服务
    • 验证服务
    • 核心服务
    docker-compose up -d ruoyi-nginx ruoyi-gateway ruoyi-auth ruoyi-modules-system
    
    1

    检查是否能够连接服务 http://192.168.233.40:80/

    后台

    ​

    注意:如果获取失败 报错 404 或者其他错误,一定要耐心等待!配置生效有点慢

    是在不行重启服务

    docker-compose start ruoyi-gateway ruoyi-auth ruoyi-modules-system
    
    1

    3、启动次要服务 (由于测试,和虚拟机容量问题,这个步骤就不操作了,下面给出操作,不截图了)

    • 代码生成器
    • 任务调度
    • 文件服务
    • 系统监视
    docker-compose up -d ruoyi-modules-gen ruoyi-modules-job ruoyi-modules-file ruoyi-visual-monitor
    
    1

    🧡4、一次性开启所有服务,不建议一次性开启这么多服务,对对服务器有一定压力!!!

    docker-compose up -d
    
    1

    # 4、结束

    就到这里吧! 博客园地址: https://www.cnblogs.com/wuxin001/p/17124437.html (opens new window)

    编辑 (opens new window)
    #ruoyi
    上次更新: 2025-06-05, 08:31:31
    使用giscus实现静态博客无后台评论系统
    使用自定义vuepress模板部署

    ← 使用giscus实现静态博客无后台评论系统 使用自定义vuepress模板部署→

    最近更新
    01
    vscode配置c++环境
    05-04
    02
    LeetCode刷题工具之本地对拍
    04-04
    03
    sublime对应语言模板使用技巧
    02-28
    更多文章>
    Theme by Vdoing | Copyright © 2020-2025 wuxin0011 | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式