从 Linux docker 访问本地计算机上的 Cosmos db 模拟器

从 Linux docker 访问本地计算机上的 Cosmos db 模拟器

我对 Linux docker 和 cosmos db 模拟器有点困惑。我在本地机器上安装了一个模拟器。在我的 Windows 10 上,我有一个带有 Web API ASP.NET core 应用程序的 Linux docker 容器。当我尝试从容器访问 cosmos db 时,我收到异常 -> HttpRequestException:连接被拒绝。在 C# 代码中,我从环境变量中获取所需的选项,如数据库的 AuthKey 和 Uri。看起来我在容器和本地主机之间的网络方面存在问题,但我不知道如何连接它们。下面提供了 docker-compose.yml 和 docker-compose.override.yml 文件。

event.webapi:
    container_name: event.webapi
    image: '${DOCKER_REGISTRY-}eventwebapi'
    environment:
     **- AzureCollectionName=Events
     - AzureDatabaseName=EventsDatabase**
    build:
      context: .
      dockerfile: src/Services/Event/Event.WebApi/Dockerfile

````````````````` docker-compose.override.yml
event.webapi:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - ASPNETCORE_URLS=https://+:443;http://+:80
      - ASPNETCORE_HTTPS_PORT=44378
      **- AzureEndpointUri=https://127.0.0.1:8081
      -AzurePrimaryKey=C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==**
    ports:
      - "53753:80"
      - "44378:443"
    volumes:
      - ${APPDATA}/Microsoft/UserSecrets:/root/.microsoft/usersecrets:ro
      - ${APPDATA}/ASP.NET/Https:/root/.aspnet/https:ro

答案1

您需要添加https://host.docker.internal:8081/作为 cosmosdb 模拟器的端点。

相关内容