Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to start CosmosDB emulator with docker-compose?

I've got a docker-compose project in Visual Studio which starts 3 services. One of them use cosmosdb.

I've followed the instructions on https://hub.docker.com/r/microsoft/azure-cosmosdb-emulator/ to start the emulator in a docker container and it worked.

But now I want to get it up and running through docker-compose file. Following is my current configuration.

version: '3.4'

services:
  gateway:        
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    image: ${DOCKER_REGISTRY-}gateway
    ports:
      - "7000:80"
    depends_on:
      - servicea
      - serviceb
    build:
      context: .\ApiGateways\IAGTO.Fenix.ApiGateway
      dockerfile: Dockerfile

  servicea:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    image: ${DOCKER_REGISTRY-}servicea
    depends_on: 
      - email.db
    build:
      context: .\Services\ServiceA
      dockerfile: Dockerfile

  serviceb:
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
    image: ${DOCKER_REGISTRY-}serviceb
    build:
      context: .\Services\ServiceB
      dockerfile: Dockerfile

  email.db:
    image: microsoft/azure-cosmosdb-emulator
    container_name: cosmosdb-emulator
    ports:
      - "8081:8081"

I can see the container running when I run docker container list enter image description here

But requests to https://localhost:8081/_explorer/index.html fails.

Any help on this much appreciated

like image 335
Amila Avatar asked Apr 08 '19 12:04

Amila


People also ask

How do I open cosmos emulator?

Begin typing Azure Cosmos DB Emulator, and select the emulator from the list of applications. When the emulator has started, you'll see an icon in the Windows taskbar notification area. It automatically opens the Azure Cosmos DB data explorer in your browser at this URL https://localhost:8081/_explorer/index.html URL.

How do I connect my Cosmosdb?

Access Azure Cosmos DB Explorer Sign in to Azure portal. From All resources, find and navigate to your Azure Cosmos DB account, select Keys, and copy the Primary Connection String. Go to https://cosmos.azure.com/, paste the connection string and select Connect.


1 Answers

I was in the same situation but the container was started with the following docker-compose.yml and it became accessible.

I can browse https://localhost:8081/_explorer/index.html

version: '3.7'

services:
    cosmosdb:
        container_name: cosmosdb
        image: microsoft/azure-cosmosdb-emulator
        tty: true
        restart: always
        ports:
            - "8081:8081"
            - "8900:8900"
            - "8901:8901"
            - "8979:8979"
            - "10250:10250"
            - "10251:10251"
            - "10252:10252"
            - "10253:10253"
            - "10254:10254"
            - "10255:10255"
            - "10256:10256"
            - "10350:10350"
        volumes:
            -  vol_cosmos:C:\CosmosDB.Emulator\bind-mount
        
volumes:
    vol_cosmos:   

Probably I needed to set "tty" or "volumes".

like image 147
salad-ja Avatar answered Sep 30 '22 16:09

salad-ja