Я новичок в игре с Docker и столкнулся с тем, что по сути является глупой проблемой.
Я установил последний рабочий стол Docker на Mac, который установлен и работает.
Я попробовал мультиконтейнерное приложение в приложении Microsoft
https://docs.microsoft.com/en-us/visualstudio/mac/docker-multi-container?view=vsmac-2019
Но продолжайте получать ошибки «Отказано в соединении» при попытке его запустить
Читая другие ответы, я отклонил проблему с моим docker-compose.yml
version: '3.4'
services:
dockerdemofrontend:
image: ${DOCKER_REGISTRY-}dockerdemofrontend
build:
context: .
dockerfile: DockerDemoFrontEnd/Dockerfile
dockerdemoapi:
image: ${DOCKER_REGISTRY-}dockerdemoapi
build:
context: .
dockerfile: DockerDemoAPI/Dockerfile
Мой DockerDemoAPI Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS base
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY DockerDemoAPI/DockerDemoAPI.csproj DockerDemoAPI/
RUN dotnet restore "DockerDemoAPI/DockerDemoAPI.csproj"
COPY . .
WORKDIR "/src/DockerDemoAPI"
RUN dotnet build "DockerDemoAPI.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DockerDemoAPI.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerDemoAPI.dll"]
Мой DockerDemoFrontEnd DockerFile
WORKDIR /app
EXPOSE 80
EXPOSE 443
FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build
WORKDIR /src
COPY DockerDemoFrontEnd/DockerDemoFrontEnd.csproj DockerDemoFrontEnd/
RUN dotnet restore "DockerDemoFrontEnd/DockerDemoFrontEnd.csproj"
COPY . .
WORKDIR "/src/DockerDemoFrontEnd"
RUN dotnet build "DockerDemoFrontEnd.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "DockerDemoFrontEnd.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "DockerDemoFrontEnd.dll"]
Inмой интерфейсный проект, если я удаляю свой http-вызов и запускаю проект
var request = new System.Net.Http.HttpRequestMessage();
request.RequestUri = new Uri("http://DockerDemoApi/api/values/1");
var response = await client.SendAsync(request);
ViewData["Message"] += " and " + await response.Content.ReadAsStringAsync();
Он работает нормально, загружается в Safari, и я могу просматривать страницу.Если я верну HTTP, я получу
HttpRequestException: Connection refused
Я заблудился, как решить эту проблему
Спасибо