环境准备

  1. Win10(开启Hyper-V)
  2. .NET Core SDK
  3. Docker for Windows
  4. VS2017 or VS Code
  5. Git
  6. SQL Server Management Studio(可选)
  7. Redis Desktop Manager(可选)
  8. Node.js(可选)
  9. Bower(可选)

Clone代码到本地

执行命令git clone https://github.com/dotnet/eShopOnContainers.gitclone代码到本地。使用默认DEV分支即可,该分支会保持最新改动,不要切换到其他分支。

环境设置

  1. 给Docker分配CPU和内存
    温馨提示:以下的配置是最低需求,否则不保证项目能正常运行!

  2. 设置共享驱动器

  3. 设置镜像加速
    把DaoCloud提供的镜像加速地址http://f1361db2.m.daocloud.io加到"registry-mirrors"的数组里,点击 Apply 。

  4. 勾选试验功能
    如果遇到这个报错,Docker: “no matching manifest for windows/amd64 in the manifest list entries”,就勾选下面这个参数。

  5. 防火墙设置
    打开代码路径,找到cli-windows\add-firewall-rules-for-sts-auth-thru-docker.ps1power shell脚本并执行,打开本地防火墙中的端口,以便对STS(Security Token Service container)进行身份验证。

构建并部署到本机Docker主机

进入eShopOnContainers根目录,执行docker-compose build

去喝几杯咖啡或者打个盹吧,估计得好一会。完成后,执行docker image,可以查看已经构建好的镜像。

PS:你可能会看到很多为<none>的镜像,这些是临时镜像,可以通过命令docker rmi $(docker images -f "dangling=true" -q)删除。

接下来执行docker-compose up命令部署到本地Docker主机。

启动完成后,执行docker ps命令查看已启动的容器列表。

本地访问http://localhost:5100/,即可打开MVC Web应用。如下图所示:

测试所有应用程序和微服务

一旦完成容器部署,就可以从本地开发机器通过一下URL或连接字符串任何服务。

  • Web MVC: http://localhost:5100
  • Web Spa: http://localhost:5104
  • Catalog microservice(产品目录微服务): http://localhost:5101 (Not secured)
  • Ordering microservice(订单微服务): http://localhost:5102 (Requires token for authorization)
  • Basket microservice(购物车微服务: http://localhost:5103 (Requires token for authorization)
  • Identity microservice(认证授权微服务): http://localhost:5105
  • Web Status(健康检查): http://localhost:5107
  • Orders database (订单数据库)(SQL Server connection string): Server=tcp:localhost,5432;Database=Microsoft.eShopOnContainers.Services.OrderingDb;User Id=sa;Password=Pass@word;
  • Catalog database (产品目录数据库)(SQL Server connection string): Server=tcp:localhost,5434;Database=CatalogDB;User Id=sa;Password=Pass@word
  • ASP.NET Identity database(身份数据库) (SQL Server connection string): Server=localhost,5433;Database=aspnet-Microsoft.eShopOnContainers;User Id=sa;Password=Pass@word
  • Basket data(购物车数据) (Redis): listening at localhost:6379

其他

PS:关于如何从外部连接SQL Server数据库,使用:
Server:localhost,5433 (这里是逗号,不是冒号!!!)
User:sa
Pwd:Pass@word

eShopOnContainers 知多少[2]:Run起来相关推荐

  1. eShopOnContainers 知多少[8]:Ordering microservice

    1. 引言 Ordering microservice(订单微服务)就是处理订单的了,它与前面讲到的几个微服务相比要复杂的多.主要涉及以下业务逻辑: 订单的创建.取消.支付.发货 库存的扣减 2. 架 ...

  2. eShopOnContainers 知多少[12]:Envoy gateways

    1. 引言 在最新的eShopOnContainers  3.0 中Ocelot 网关被Envoy Proxy 替换.下面就来简要带大家了解下Envoy,并尝试梳理下为什么要使用Envoy替代Ocel ...

  3. eShopOnContainers 知多少[5]:EventBus With RabbitMQ

    1. 引言 事件总线这个概念对你来说可能很陌生,但提到观察者(发布-订阅)模式,你也许就很熟悉.事件总线是对发布-订阅模式的一种实现.它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需 ...

  4. eShopOnContainers 知多少[3]:Identity microservice

    首先感谢晓晨Master和EdisonChou的审稿!也感谢正在阅读的您! 引言 通常,服务所公开的资源和 API 必须仅限受信任的特定用户和客户端访问.那进行 API 级别信任决策的第一步就是身份认 ...

  5. eShopOnContainers 知多少[11]:服务间通信之gRPC

    1. 引言 最近翻看最新3.0 eShopOncontainers源码,发现其在架构选型中补充了 gRPC 进行服务间通信.那就索性也写一篇,作为系列的补充. 2. gRPC 老规矩,先来理一下gRP ...

  6. eShopOnContainers 知多少[10]:部署到 K8S | AKS

    1. 引言 断断续续,感觉这个系列又要半途而废了.趁着假期,赶紧再更一篇,介绍下如何将eShopOnContainers部署到K8S上,进而实现大家常说的微服务上云. 2. 先了解下 Helm 读过我 ...

  7. eShopOnContainers 知多少[9]:Ocelot gateways

    引言 客户端与微服务的通信问题永远是一个绕不开的问题,对于小型微服务应用,客户端与微服务可以使用直连的方式进行通信,但对于对于大型的微服务应用我们将不得不面对以下问题: 如何降低客户端到后台的请求数量 ...

  8. eShopOnContainers 知多少[6]:持久化事件日志

    1. 引言 事件总线解决了微服务间如何基于集成事件进行异步通信的问题.然而只有事件总线正常运行,微服务之间基于事件的通信才得以运转. 而现实情况是,总有这样或那样的问题,导致事件总线不稳定或不可用,比 ...

  9. eShopOnContainers 知多少[4]:Catalog microservice

    引言 Catalog microservice(目录微服务)维护着所有产品信息,包括库存.价格.所以该微服务的核心业务为: 产品信息的维护 库存的更新 价格的维护 架构模式 如上图所示,本微服务采用简 ...

最新文章

  1. TVM性能评估分析(五)
  2. Microbiome:首个地球微生物“社会关系”网络在浙大绘制!
  3. SAP MM 没有维护MRP 视图的物料可以正常参与采购业务
  4. MyBatis中调用存储过程和函数
  5. bond的主备模式_号外号外:Redhat7通过bond技术实现双网卡绑定
  6. a标签居中 img vue,让html img图片垂直居中的三种方法
  7. 【2016年第4期】研究(国家自然科学基金项目成果集萃)导读
  8. android mtk平台的fm停止搜索,【MTK平台,手机工程模式知识及方法详解】
  9. 【优化预测】基于matlab布谷鸟搜索算法优化SVM预测【含Matlab源码 1525期】
  10. 无法定位程序输入点 except_python自制王者荣耀抽卡程序
  11. 影子传文件到服务器,影子传说——文件超级隐身术
  12. ocelot和nginx比较_针对 Ocelot 网关的性能测试
  13. 监控软件Zabbix之配置139邮箱报警机制
  14. Shuffle(洗牌算法)
  15. Python爬虫入门教程 35-100 知乎网全站用户爬虫 scrapy
  16. 有什么好用的视频剪辑软件适合新人UP主
  17. 企业电子招标采购系统源码—互联网+招标采购
  18. 驻场是指进驻甲方的办公场地吗?
  19. 计算机卡主板页面,windows电脑开机时卡在主板界面
  20. 通过学生信息管理系统(数组版)学习C语言

热门文章

  1. 训练和验证准确性_通过沉浸式虚拟现实观察动作增强运动想象训练
  2. java生成和读取keystore_Java程序员必知:mybaties运行流程
  3. python redis 订阅发布_Python-Redis的发布与订阅
  4. 2012r2备域控服务器搭建,Windows2012R2备用域控搭建
  5. 利用中断在 ESP32 MicroPython 程序中读取AM2302
  6. 2021年春季学期-信号与系统-第十五次作业参考答案-第十小题参考答案
  7. 访问学术网站的便捷方式
  8. AD5933不同频率下的转换结果
  9. 如果做不了合格的工程师,那就做个艺术家吧
  10. 有人工裁判,就会有争执