
Ich bin ein wenig verwirrt von Linux Docker und Cosmos DB Emulator. Auf meinem lokalen Rechner ist ein Emulator installiert. Auf meinem Windows 10 habe ich einen Linux Docker Container mit Web API ASP.NET Core-Anwendung. Wenn ich versuche, vom Container auf Cosmos DB zuzugreifen, erhalte ich eine Ausnahme -> HttpRequestException: Verbindung abgelehnt. Im C#-Code erhalte ich benötigte Optionen wie AuthKey und URI zur Datenbank aus Umgebungsvariablen. Anscheinend habe ich ein Problem mit dem Netzwerk zwischen Container und lokalem Host, aber ich verstehe nicht, wie ich diese verbinden kann. Unten sind die Dateien docker-compose.yml und docker-compose.override.yml aufgeführt.
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
Antwort1
Sie müssen hinzufügenhttps://host.docker.internal:8081/als Endpunkt zum CosmosDB-Emulator.