Использование Docker Compose / Dockerfile для подключения от контейнера к хосту на локальной машине разработки - PullRequest
0 голосов
/ 04 июня 2019

У меня есть веб-приложение ASP.Net MVC (.Net Framework 4.6), которое я обычно запускал на локальной машине разработчика (скажем, оно работает на localhost:10000).Приложение подключается к нескольким локальным службам:

  • База данных
  • Azure Storage (эмулятор)
  • Azure Cosmos (эмулятор)

Localкомпьютер dev (хост) работает под управлением Windows 10.

Вопрос

Я в процессе перемещения этого приложения в контейнер Docker и смог запустить приложение из Docker.контейнер.У меня вопрос, как мне настроить сеть (используя Docker Compose или docker run, чтобы приложение (находящееся в контейнере) могло подключаться к службам (база данных, хранилище и эмулятор космоса), которые находятся на моем хосте?

Что я пробовал

Ничего из этого не работает. Я по-прежнему получаю сообщение об ошибке при подключении из контейнера в хост.Ошибка

enter image description here

Другие конфигурации

enter image description here

enter image description here

enter image description here

Я использую Dockerfile и Docker Compose файлы yml для локального построения и запуска контейнера.

Dockerfile file

# escape=`

FROM mcr.microsoft.com/dotnet/framework/sdk:4.8 AS build
WORKDIR /app

# Copy everything else and build app
COPY Web/Web/. ./Web/Web/

# Build the projects
WORKDIR /app/Web/Web
RUN msbuild /p:Configuration=Debug

FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8 AS runtime
WORKDIR /inetpub/wwwroot

# Configure website
SHELL ["powershell", "-command"]

# Install ASP.NET
RUN Install-WindowsFeature Web-Asp-Net45
EXPOSE 10000
RUN Remove-Website -Name 'Default Web Site'; `
    New-Website -Name 'Web' `
                -Port 10000 -PhysicalPath 'c:\inetpub\wwwroot' `
                -ApplicationPool '.NET v4.5'

# Final copy for build
COPY --from=build /app/Web/. ./

Docker Составьте файл yml.

version: '3.5'
services:
  web:
    build: .
    ports:
      - "10000:10000"
...