I'm trying to run a linux container for the CosmosDB emulator via docker-compose, but I can't connect to it.
I have the following docker-compose file:
version: '3.4'
services:
local-cosmosdb:
image: "mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator:mongodb"
container_name: local.cosmosdb
tty: true
restart: always
environment:
- AZURE_COSMOS_EMULATOR_PARTITION_COUNT=10
- AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true
ports:
- 8081:8081
- 10250:10250
- 10251:10251
- 10252:10252
- 10253:10253
- 10254:10254
- 10255:10255
When I start the container, the console says that all partitions are started successfully & it is up and running. By using telnet, I have also confirmed that there is some process listening on ports such as 10250 and 8081 on localhost. However, I can't connect to the DB with the connection string mongodb://localhost:8081
(MongoDB works with the same string but on port 27017, and I assumed there's an equivalent in cosmos).
I have also tried:
- Using any of the other ports that were exposed (including 10250 and 10255)
- Trying out different tags for the emulator
- Using the container name instead of local host in combination with various ports (ex.
mongodb://local.cosmosdb:8081
)
There is documentation on connecting directly to Azure Cosmos DB via connection string, but I can't really find any resources out there about connecting to a Cosmos DB emulator running on docker compose specifically... Best I could find is this: CosmosDb Emulator with docker-compose which doesn't really answer my question. I also came across this: How to start CosmosDB emulator with docker-compose? but it doesn't cover getting an actual connection string.
Any help on this would be hugely appreciated!