我在 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:我曾经有过这个工作,但我不知道我做了什么来破坏它。
我在 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 被设置为主机可访问的位置。
| 归档时间: |
|
| 查看次数: |
1262 次 |
| 最近记录: |