Я развернул службу приложений с несколькими контейнерами в Azure, используя docker compose file (preview).
Веб-приложение предоставляет порт 80, так что если я go - https://myproj.azurewebsites.net/ отображается веб-приложение (это единственный доступный порт c).
Что я хотел бы сделать сейчас, так это уметь отправлять http-запрос из Интернета на мой API, который другой контейнер размещен внутри. Я пробовал разные URL, но не могу сделать успешный запрос. Контейнер API успешно запускается, поэтому в этом нет ничего плохого, я просто не знаю, какой адрес использовать.
OrderApi Dockerfile
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1-buster-slim AS base
WORKDIR /app
EXPOSE 80
FROM mcr.microsoft.com/dotnet/core/sdk:3.1-buster AS build
WORKDIR /src
COPY ["MyProj.OrderApi/MyProj.OrderApi.csproj", "MyProj.OrderApi/"]
COPY ["nuget.config", "MyProj.OrderApi/"]
RUN dotnet restore "v.OrderApi/MyProj.OrderApi.csproj" --configfile "MyProj.OrderApi/nuget.config"
RUN rm "MyProj.OrderApi/nuget.config"
COPY . .
WORKDIR "/src/MyProj.OrderApi"
RUN dotnet build "MyProj.OrderApi.csproj" -c Release -o /app/build
FROM build AS publish
RUN dotnet publish "MyProj.OrderApi.csproj" -c Release -o /app/publish
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MyProj.OrderApi.dll"]
Docker файл составления, используемый в производстве (Azure)
version: '3.4'
services:
web:
image: myproj.azurecr.io/myproj/web
ports:
- '80:80'
orderapi:
image: myproj.azurecr.io/myproj/orderapi
Проверенные конечные точки
https://localhost/orderapi/api - ERR_CONNECTION_REFUSED
http://localhost/orderapi/api - заблокировано политикой CORS (я уверен, что cors правильно настроен в API)
https://host.docker.internal/orderapi/api - ERR_CONNECTION_TIMED_OUT
orderapi / api - добавляет текущий сайт как baseurl .. пытается отправить запрос на https://mysite.azurewebsites.net/orderapi/api
http://host.docker.internal/orderapi/api - этот запрос был заблокирован ; контент должен обслуживаться через HTTPS
host. docker .internal / orderapi / api - добавляет текущий сайт в качестве baseurl. Пытается отправить запрос на https://mysite.azurewebsites.net/host.docker.internal/orderapi/api