当我尝试创建数据库时,azure-cosmos-emulator 挂起

dja*_*fan 5 azure-cosmosdb

我在 Intel Mac 上,尝试运行 linux azure-cosmos-emulator 模拟器,但每次启动映像并尝试创建数据库时,它都会挂起并且从不创建数据库。容器日志中没有显示任何内容。我该如何解决这个问题或排除故障?

这是我的设置。我究竟做错了什么?

version: '2.4'

## to run:
##  export EXTERNAL_IP=$(ifconfig | grep "inet " | grep -Fv 127.0.0.1 | awk '{print $2}' | head -n 1)
##  docker-compose up -d

services:

  cosmosdb:
    container_name: cosmosdb
    hostname: cosmosdb
    image: mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator
    platform: linux
    tty: true
    restart: always
    mem_limit: 3GB
    ports:
      - '8081:8081'
      - '8900-8902'
      - '10250-10256'
      - '10350:10350'
    environment:
      AZURE_COSMOS_EMULATOR_PARTITION_COUNT: 10
      AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE: true
      AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE: ${EXTERNAL_IP}
    volumes:
      -  vol_cosmos:/tmp/cosmos.data

volumes:
  vol_cosmos:
Run Code Online (Sandbox Code Playgroud)

注1:该文件夹/tmp/cosmos.data是我的Mac上具有777权限的文件夹。当我启动容器时,我没有看到在此文件夹中创建任何文件。注意2:我还尝试将持久性设置为 false。仍然无法创建数据库。注3:我曾经有过这个工作,但我不知道我做了什么来破坏它。

vee*_*ien 8

我在 Windows 机器上遇到了同样的问题。我的客户挂断了电话await client.CreateDatabaseIfNotExistsAsync(id: "my-db")

为了解决这个问题,我查看了 Visual Studio 中的调试事件。它包括

Current WriteEndpoints = (https://172.17.0.2:8081/) ReadEndpoints = (https://172.17.0.2:8081/)

我通过在运行容器时设置以下环境变量来修复它:

--env AZURE_COSMOS_EMULATOR_IP_ADDRESS_OVERRIDE=127.0.0.1

通过该设置,WriteEndpoints 和 ReadEndpoints 被设置为主机可访问的位置。