Не удается подключиться к эмулятору хранилища Azure из док-контейнера на той же машине - PullRequest
0 голосов
/ 19 декабря 2018

Я успешно докеризировал приложение web api .net core 2.2 в Visual Studio 2017.Одна часть этого приложения должна хранить некоторые данные в эмуляторе хранилища Azure, работающем на той же машине, на которой работает VS 2017.Конфигурация эмулятора выглядит следующим образом:

<services>
   <service name="Blob" url="http://127.0.0.1:10000/"/>
   <service name="Queue" url="http://127.0.0.1:10001/"/>
   <service name="Table" url="http://127.0.0.1:10002/"/>
</services>

docker-compose.yml файл имеет следующее сетевое определение:

build:
      context: .
      dockerfile: MyWebApi\Dockerfile
      network: host

Я могу просмотреть вывод веб-API на https://127.0.0.1:44315/api/values

Насколько я понимаю, конфигурация сети "host" сделала свое дело, назначив IP-адрес хоста контейнера контейнеру, что на данный момент кажется хорошим.Вопрос заключается в том, почему докеризованное веб-приложение в контейнере не может связаться с эмулятором, несмотря на упомянутую конфигурацию.Чего не хватает в этом упражнении?

1 Ответ

0 голосов
/ 19 декабря 2018

Насколько я помню, эмулятор хранилища Azure связан в локальной сети, а Docker для Windows работает на ВМ с использованием Hyper-V .

Боюсь, что решение будет состоять в использовании образа microsoft / azure-storage-emulator при разработке и нацеливании вашего API к нему.

Обновление

Вы также можете попробовать использовать host.docker.internal вместо 127.0.0.1 в качестве хоста в строке подключения (это также может позволитьвы используете эмулятор, работающий на вашем хосте вместо контейнера).

Надеюсь, это поможет!

...