基于 abp vNext 微服务开发的敏捷应用构建平台 - 开发环境搭建

环境准备

ABP vNext 微服务官方介绍的系统架构图如下:

ABP vNext 微服务

运行要求

  • SQL Server 2015+ (可以是 express edition)
  • Redis 5.0+
  • RabbitMQ 3.7.11+
  • MongoDB 4.0+
  • ElasticSearch 6.6+
  • Kibana 6.6+ (可选,建议显示日志)

我所使用的环境

  • Windows 10 专业版
  • Docker Desktop
  • Visual Studio 2019
  • .Net Core 3.1-buster
  • SQL Server latest
  • MySQL 5.7
  • Redis alpine
  • RabbitMQ 3-management-alpine
  • MongoDB latest
  • ElasticSearch 7.8.0
  • Logstash 7.8.0
  • Kibana 7.8.0

项目源码:【Github】

https://github.com/zhang8043/AgileWork

安装 Visual Studio 2019

下载 Visual Studio

通过官方下载Visual Studio:【下载 Visual Studio】

https://visualstudio.microsoft.com/zh-hans/downloads/

Visual Studio 2019安装教程

官方Visual Studio安装教程:【安装教程】

https://docs.microsoft.com/zh-cn/visualstudio/install/install-visual-studio?view=vs-2019

Windows下安装Docker

下载Docker for Windows安装文件:【下载 Docker Desktop】

https://www.docker.com/products/docker-desktop

运行安装文件

双击下载的 Docker for Windows Installer 安装文件,一路 Next,点击 Finish 完成安装。

镜像加速

此处使用阿里云的加速器,因为在使用docker的时候,会需要从docker的网站下载镜像文件,下载速度可能会很慢。获得阿里云加速,需要登录阿里云开发者平台,然后点击右侧的管理中心(当然你得要有一个账户):
阿里云容器镜像服务:【镜像加速】

https://cr.console.aliyun.com/

  • 复制红色方框中的代码,打开CMD,粘贴进去替换个人Key就可以运行
docker-machine create --engine-registry-mirror=https://个人Key.mirror.aliyuncs.com -d virtualbox default

  • 打开Docker for Windows点击Settings-Docker Engine配置registry-mirrors

Docker for Windows

开发环境搭建

获取项目源码

通过GitHub获取项目源码:【获取源码】

https://github.com/zhang8043/AgileWork

项目结构

  • _run
    • __Open_Browser.ps1 - 打开浏览器
    • __Run_All_Service.ps1 - 运行全部项目
    • __Run_Docker_Service.ps1 - 运行项目到 Docker
    • __Run_Infrastructure.ps1 - 运行 Docker 基础设施
    • __Stop_Docker_Service.ps1 - 停止 Docker 项目
    • __Stop_Infrastructure.ps1 - 停止 Docker 基础设施
    • 01_AuthServer.ps1 - 运行授权服务
    • 02_BackendAdminService.ps1 - 运行后台管理服务
    • 03_InternalGateway.ps1 - 运行内部网关
    • 04_BackendAdminGateway.ps1 -运行后台管理网关
  • data - 数据库文件
  • docs - 文档文件
    • images
    • releases
  • elk - ELK 日志配置
  • logs - Docker 项目运行日志
  • service - 后台服务
    • auth - 授权
      • AuthServer.Host - 授权服务
    • framework - 框架
    • gateways - 网关
      • BackendAdminGateway.Host -后台管理网关
      • InternalGateway.Host - 内部网关
    • microservices - 服务
      • BackendAdminService.Host - 后台管理服务
    • modules - 模块
      • account - 账户
      • audit-logging - 日志
      • backend-admin - 后台
      • feature-management - 功能
      • file-management - 文件
      • identity - 身份认证
      • identityServer - 认证服务
      • permissions-management - 权限
      • setting-management - 设置
      • tenant-management - 租户
    • shared - 共有
    • common.props
    • Microservice.sln
  • .dockerignore
  • .gitignore
  • docker-compose.infrastructure.override.yml - Docker 基础设施(环境变量、参数)
  • docker-compose.infrastructure.yml - Docker 基础设施
  • docker-compose.override.yml - Docker 项目运行(环境变量、参数)
  • docker-compose.yml - Docker 项目运行
  • README.md

Docker 运行

项目根目录 下运行 docker-compose 命令或使用 PowerShell 运行 _run 文件夹下的脚本

运行基础设施环境

使用 PowerShell 运行 _run 文件夹下的 __Run_Infrastructure.ps1 脚本或:

docker-compose -f docker-compose.infrastructure.yml -f docker-compose.infrastructure.override.yml up -d

根据个人配置修改以下docker-compose文件,将yourStrong(!)Password修改为个人密码

docker-compose.infrastructure.yml

version: '3.7'

services:

  mysql:
    image: 'mysql:5.7'
    restart: always
    container_name: microservice_mysql
    volumes:
      - ./data/mysql:/var/lib/mysql
      
  sqlserver:
    image: mcr.microsoft.com/mssql/server
    container_name: microservice_sqlserver
    volumes:
      - dbdata:/var/opt/mssql

  mongodb:
    image: mongo
    container_name: microservice_mongo

  rabbitmq:
    image: 'rabbitmq:3-management-alpine'
    container_name: microservice_rabbitmq

  redis:
    image: redis:alpine
    container_name: microservice_redis

  elasticsearch:
    image: 'docker.elastic.co/elasticsearch/elasticsearch:7.8.0'
    container_name: microservice_elasticsearch
    volumes:
      - esdata:/usr/share/elasticsearch/data

  logstash:
    image: 'docker.elastic.co/logstash/logstash:7.8.0'
    container_name: microservice_logstash
    depends_on:
      - elasticsearch

  kibana:
    image: 'docker.elastic.co/kibana/kibana:7.8.0'
    container_name: microservice_kibana
    depends_on:
      - elasticsearch
        
volumes:
  dbdata:
  esdata:

docker-compose.infrastructure.override.yml

version: '3.7'

services:

  mysql:
    environment:
      MYSQL_ROOT_PASSWORD: yourStrong(!)Password
    command:
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
      --explicit_defaults_for_timestamp=true
      --lower_case_table_names=1
      --default-time-zone=+8:00
    ports:
      - 3306:3306
    
  sqlserver:
    volumes:
      - ./data/mssql:/var/opt/mssql/data
    environment:
      - SA_PASSWORD=yourStrong(!)Password
      - ACCEPT_EULA=Y
    ports:
      - '1433:1433'

  mongodb:
    ports:
      - '27017:27017'

  rabbitmq:
    environment:
      RABBITMQ_DEFAULT_USER: admin
      RABBITMQ_DEFAULT_PASS: yourStrong(!)Password
    ports:
      - '15672:15672'
      - '5672:5672'

  redis:
    ports:
      - '6379:6379'

  elasticsearch:
    volumes:
      - ./elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
    environment:
      - 'ES_JAVA_OPTS=-Xms512m -Xmx512m'
    ports:
      - '9200:9200'

  logstash:
    volumes:
      - ./elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro
      - ./elk/logstash/pipeline:/usr/share/logstash/pipeline:ro
    environment:
      - 'LS_JAVA_OPTS=-Xmx256m -Xms256m'
    ports:
      - '9600'
      - '5000'

  kibana:
    volumes:
      - ./elk/kibana/config/:/usr/share/kibana/config:ro
    ports:
      - 5601:5601

posted @ 2020-11-22 12:47  叮咚z  阅读(1214)  评论(1编辑  收藏  举报