首页 > 解决方案 > 每次系统重启时在 Mac 上设置 Cosmos-DB 模拟器

问题描述

我跟着这个视频在 Mac OS 中运行新的 Cosmos DB 模拟器: https ://www.youtube.com/watch?v=NUfK6n8UXi8

后续步骤:

  1. 访问 Docker Hub 并安装 Docker Desktop for macOS
  2. 检索本地计算机的 IP 地址。当使用 Cosmos DB SDK(.NET、Java)配置直接模式设置时,需要执行此步骤。
ipaddr="`ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}' | head -n 1`"
  1. 从注册表中拉取 Docker 映像。
docker pull mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
  1. 使用以下配置运行 Docker 映像:
docker run -p 8081:8081 -p 8900:8900 -p 8901:8901 -p 8902:8902 -p 10250:10250 -p 10251:10251 -p 10252:10252 -p 10253:10253 -p 10254:10254 -p 10255:10255 -p 10350:10350 -m 4g --cpus=2.0 --name=test-linux-emulator -e AZURE_COSMOS_EMULATOR_PARTITION_COUNT=3 -e AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=TRUE -e AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=$ipaddr -it mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
  1. 模拟器运行后,使用不同的终端,将本地机器的 IP 地址加载到变量中。
ipaddr="`ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}' | head -n 1`"
  1. 接下来,下载模拟器的证书。
curl -k https://$ipaddr:8081/_explorer/emulator.pem > emulatorcert.crt
  1. 打开KeyChain Access应用程序。单击“文件”->“导入项目”->“emulatorcert.crt”,即最近从先前命令下载的证书->单击“打开”。

  2. 将加载“localhost”证书。单击证书,将打开一个弹出窗口。在“使用此证书时”选择“始终信任”并关闭弹出窗口。

  3. 打开 htpps://localhost:8081/_explorer/index.html,这应该会打开模拟器。

早些时候,对我来说,第 9 步,localhost:8081 继续加载,没有响应或错误。我再次按照上述步骤操作,这次它对我有用。

目前我面临的问题是,每次重新启动笔记本电脑时,我都必须再次执行上述所有步骤,例如下载最新图像和设置证书。在运行 docker 映像时,我将“ AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE ”标志保持为真,因此我希望保留状态。所遵循的步骤是否存在一些错误,因为每次设置都是一个困难的过程。

标签: azure-cosmosdbazure-cosmosdb-emulator

解决方案


推荐阅读