[英]Connecting to host Cosmos emulator from Docker container
我有一个通过 docker compose 在 docker 容器中运行的 .net 应用程序。 我正在使用带有运行 Linux 容器的 Docker Desktop 的 Windows 机器。
应用程序连接到 Cosmos 实例。 默认情况下,帐户密钥设置为模拟器密钥。
这是docker-compose.yml的部分
customerapi:
container_name: mycustomerapi
image: acr.io/customer-api:master
ports:
- "20102:80"
environment:
- ASPNETCORE_ENVIRONMENT=Development
- CosmosOptions__Endpoint=${endpoint}
- CosmosOptions__DisableSsl=true
如果我覆盖帐户密钥和端点,我可以让应用程序使用托管在 Azure 中的真实实例进行连接,但我无法让它连接到在主机上运行的模拟器。
我尝试将${endpoint}设置为以下值,但没有成功;
System.Net.Http.HttpRequestException: Connection refused (127.0.0.1:8081)
。 我也尝试过使用network_mode: host
和两个端点。
System.Net.Http.HttpRequestException: No route to host (192.168.10.110:8081)
我需要使用AllowNetworkAccess运行 Cosmos
此答案显示了如何使用/AllowNetworkAccess参数启动模拟器。
局域网上的 Azure Cosmos DB 模拟器
一旦它运行起来,我就可以使用https://host.docker.internal:8081/并且容器会变得栩栩如生!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.