虚拟化容器,大数据,DBA,中间件,监控。

docker+Portainer容器化部署nacos+rouyi_cloud+SkyWalking+sentinel

01 12月
作者:admin|分类:容器虚拟化

docker+Portainer容器化部署nacos+rouyi_cloud+SkyWalking+sentinel


RuoYi-Cloud是一款基于Spring Boot、Spring Cloud & Alibaba、Vue、Element的前后端分离微服务极速后台开发框架。

RuoYi-Cloud 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring Cloud & Alibaba、Vue、Element),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线定时任务配置;支持集群,支持多数据源。

系统模块


~~~

com.ruoyi    

├── ruoyi-ui              // 前端框架 [80]

├── ruoyi-gateway         // 网关模块 [8080]

├── ruoyi-auth            // 认证中心 [9200]

├── ruoyi-api             // 接口模块

│       └── ruoyi-api-system                          // 系统接口

├── ruoyi-common          // 通用模块

│       └── ruoyi-common-core                         // 核心模块

│       └── ruoyi-common-datascope                    // 权限范围

│       └── ruoyi-common-datasource                   // 多数据源

│       └── ruoyi-common-log                          // 日志记录

│       └── ruoyi-common-redis                        // 缓存服务

│       └── ruoyi-common-security                     // 安全模块

│       └── ruoyi-common-swagger                      // 系统接口

├── ruoyi-modules         // 业务模块

│       └── ruoyi-system                              // 系统模块 [9201]

│       └── ruoyi-gen                                 // 代码生成 [9202]

│       └── ruoyi-job                                 // 定时任务 [9203]

│       └── ruoyi-file                                // 文件服务 [9300]

├── ruoyi-visual          // 图形化管理模块

│       └── ruoyi-visual-monitor                      // 监控中心 [9100]

├──pom.xml                // 公共依赖





环境部署


#1,准备工作


JDK >= 1.8 (推荐1.8版本)
Mysql >= 5.7.0 (推荐5.7版本)
Redis >= 3.0
Maven >= 3.0
Node >= 10
nacos >= 1.1.0 (ruoyi-cloud >= 3.0.0需要下载nacos >= 2.x.x版本)
sentinel >= 1.6.0 
skywalking
Centos7.8 IP: 192.168.137.38
docker最新版本
Portainer UI


2,移除以前docker相关包


sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine


3、配置yum源


sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


4、安装docker


sudo yum install -y docker-ce docker-ce-cli containerd.io


5、启动
systemctl enable docker --now


6、配置加速

这里额外添加了docker的生产环境核心配置cgroup


sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://82m9ar63.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker


7,给docker安装个UI



dokcer安装好后,第一步,给docker安装个UI,避免命令出现审判疲劳,这里就安装6053537/portainer-ce的镜像,是汉化版本。

[root@centos-38 ~]#  docker run -d --name portainerUI -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock 6053537/portainer-ce



通过此地址登陆: http://192.168.137.38:9000/





8,docker 部署安装nacos-docker。

     容器如出现时间或时区不正常,可以在UI中部署时的环境中添加变量: TZ=Asia/Shanghai


[root@centos-38 ~]# yum install git -y
[root@centos-38 ~]# git clone https://github.com/nacos-group/nacos-docker.git
[root@centos-38 ~]#  mv nacos-docker /opt/

[root@centos-38 ~]# cd /opt/nacos-docker/



这里使用 docker-compose来部署,只是有些nacos的有些配置文件要修改下。

这里需要使用ry-config的数据库,所以需要修改env/nacos-standlone-mysql.envs相关信息

[root@centos-38 nacos-docker]# cat env/nacos-standlone-mysql.env


PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
MYSQL_SERVICE_HOST=mysql
MYSQL_SERVICE_DB_NAME=ry-config
MYSQL_SERVICE_PORT=3306
MYSQL_SERVICE_USER=root
MYSQL_SERVICE_PASSWORD=root
MYSQL_SERVICE_DB_PARAM=characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false


最后可以部署docker容器:


[root@centos-38 ~]# docker-compose -f example/standalone-mysql-8.yaml up


到portainer中查看如下:




9,相关sql导入到mysql容器中。

下载ruoyi_cloud的相关mysql数据的sql,点击打开链接可以下载相关SQL文件。

这些数据库sql有给ruoyi使用的,还有给nacos使用,需要创建4个库,我这里就直接导入到nacos中的mysql中。

操作好后,可以登陆web页面 http://192.168.137.38:8848/nacos ,显示如下:


10,ruoyi_cloud的前端运行测试与打包。

我这里以vscode编辑器方法操作。

先在本地打包测试运行,再转到docker中运行。


# 进入项目目录

cd ruoyi-ui


# 安装依赖

npm install


# 强烈建议不要用直接使用 cnpm 安装,会有各种诡异的 bug,可以通过重新指定 registry 来解决 npm 安装速度慢的问题。

npm install --registry=https://registry.npm.taobao.org


# 本地开发 启动项目

 npm run dev



建议使用Git克隆,因为克隆的方式可以和RuoYi随时保持更新同步。使用Git命令克隆

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

在vscode中运行本地测试环境。提示如下:


ruoyi_cloud后端运行基础模块(启动没有先后顺序)

  • RuoYiGatewayApplication (网关模块 必须

  • RuoYiAuthApplication (认证模块 必须

  • RuoYiSystemApplication (系统模块 必须

  • RuoYiMonitorApplication (监控中心 可选

  • RuoYiGenApplication (代码生成 可选

  • RuoYiJobApplication (定时任务 可选

  • RuoYFileApplication (文件服务 可选

[root@centos-38 config]# docker run -p 6379:6379 --name redis -v /opt/redis/config/redis.conf:/etc/redis/redis.conf -v /opt/redis/data:/data -d redis:6.2.6 redis-server /etc/redis/redis.conf --appendonly yes

# Tomcat

server:

  port: 8080


# Spring

spring:

  application:

    # 应用名称

    name: ruoyi-gateway

  profiles:

    # 环境配置

    active: dev

  main:

    allow-bean-definition-overriding: true

  cloud:

    nacos:

      discovery:

        # 服务注册地址

        server-addr: 192.168.137.38:8848

      config:

        # 配置中心地址

        server-addr: 192.168.137.38:8848

        # 配置文件格式

        file-extension: yml

        # 共享配置

        shared-configs:

          - application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}

    sentinel:

      # 取消控制台懒加载

      eager: true

      transport:

        # 控制台地址

        dashboard: 192.168.137.38:8718

      # nacos配置持久化

      datasource:

        ds1:

          nacos:

            server-addr: 192.168.137.38:8848

            dataId: sentinel-ruoyi-gateway

            groupId: DEFAULT_GROUP

            data-type: json

            rule-type: flow





浏览477 评论0
返回
目录
返回
首页
分布式微服务应用的熔断和降级介绍与实现 Keepalived+Nginx部署方案