Как запустить эмулятор CosmosDB с помощью docker-compose?

У меня есть проект создания докеров в Visual Studio, который запускает 3 службы. Один из них использует космосдб.

Я выполнил инструкции на https://hub.docker.com/r/microsoft/azure-cosmosdb-emulator/, чтобы запустить эмулятор в док-контейнере, и это сработало.

Но теперь я хочу запустить его через файл docker-compose. Ниже приведена моя текущая конфигурация.

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"

Я вижу работающий контейнер, когда запускаю docker container list введите здесь описание изображения

Но запросы к https://localhost:8081/_explorer/index.html не выполняются.

Любая помощь в этом очень ценится


person Amila    schedule 08.04.2019    source источник


Ответы (3)


У меня была такая же ситуация, но контейнер запустился со следующим docker-compose.yml и стал доступен.

Я могу просматривать 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:   

Вероятно, мне нужно было установить tty или volumes.

person salad-ja    schedule 07.07.2020

Часть проблемы заключается в том, что эмулятору требуется некоторое время для запуска, и есть тайм-аут в 2 минуты, прежде чем он просто перестанет ждать. Я пытаюсь взломать свой путь через это, но у меня не было большого успеха. На данный момент образ работает только автономно (через запуск докера) и все.

person Juan Carlos    schedule 09.05.2019

Используя образ linux Cosmos db, я настроил его следующим образом:

version: '3.4'

services:
  db:
    container_name: cosmosdb
    image: "mcr.microsoft.com/cosmosdb/linux/azure-cosmos-emulator"
    tty: true
    restart: always
    mem_limit: 2G
    cpu_count: 2
    environment:
      - AZURE_COSMOS_EMULATOR_PARTITION_COUNT=10
      - AZURE_COSMOS_EMULATOR_ENABLE_DATA_PERSISTENCE=true
    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:/data/db

volumes: 
  vol_cosmos:

person Pavel M.    schedule 22.06.2021