Как развернуть докер-контейнер, используя ядро ​​dotnet и nginx для лазури - PullRequest
0 голосов
/ 23 сентября 2019

Так что я вполне прилично использую nginx и dotnetcore для настройки защищенного сервера на голом железе или виртуальной машины.Моя новая компания использует Azure, и я в основном использую AWS дома.Я все еще немного зелен, когда дело доходит до докеров и контейнерных приложений.Я тестировал контейнер, который работает локально, это файл docker:

FROM mcr.microsoft.com/dotnet/core/aspnet:2.2 AS base
WORKDIR /app
EXPOSE 5000

FROM mcr.microsoft.com/dotnet/core/sdk:2.2 AS build
WORKDIR /src
COPY ["BrandArmorRest.csproj", "./"]
RUN dotnet restore "./BrandArmorRest.csproj"
COPY . .
WORKDIR "/src/."
RUN dotnet build "BrandArmorRest.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "BrandArmorRest.csproj" -c Release -o /app/publish

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "BrandArmorRest.dll"]

Пока я играл с контейнерами, мне нужно было что-то проверить в сети, поэтому у меня на ходу работает приложение nginx.Я обычно перемещаюсь в облако с экземпляром AWS EC2.Я настраиваю nginx с сертификатом и ключом, получаю TLS для оценки A и т. Д. Ядро Dotnet работает как системная служба за обратным прокси.

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

Так что локально я бы сделал

docker build -t idfk .
docker run --rm -d -p 5000:80/tcp brandarmor:latest

Затем перейдите к localhost: 5000 и все хорошо.Я видел этот пост о добавлении nginx поверх него Установите nginx в существующий контейнер докера ядра asp.net .Но тогда я не был уверен в аспектах безопасности.Как насчет TLS.В основном я использую nginx для прекращения шифрования, но, возможно, в docker / azure / kubernetes уже есть система для этого, поэтому необходимость в nginx на самом деле отсутствует.Я просто хочу развернуть простой веб-API, который еще не запущен в производство, поэтому на данном этапе не все важно для масштабирования / балансировки нагрузки.Я думаю, мой вопрос заключается в следующем.Как мне перейти от этого контейнера, разработанного на месте, к лазури, не построив небоскреба.Нужен ли мне слой nginx, или у Azure есть свой внутренний способ сделать это?Если мне нужен уровень nginx, как мне сохранить шифрование RSA?Другими словами, удаление закрытого ключа и сертификата в моем git-репо звучит как ужасная идея, но каковы альтернативы.У меня нет требований к DNS, поэтому у него может быть какое-то общее имя Azure, если только это https.Заранее спасибо за любой совет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...