Введение Как веб-разработчики, мы привыкли находить подходящий хостинг для наших приложений со всеми сложностями их развертывания и обслуживания. Но сейчас мы живем в новую эпоху, когда поставщики облачных услуг могут сделать для нас многое практически бесплатно. Что касается разработчиков .NET, Microsoft Azure выглядит наиболее естественным выбором для размещения веб-приложений. Docker — это еще одна технология, которая позволяет абстрагироваться от платформы и среды, в которой вы запускаете свое приложение. В этой статье я дам подробное руководство о том, как создать простое веб-приложение ASP.NET Core, создать образ докера с вашим приложением и самый простой способ его развертывания в Azure. В итоге вы будете хорошо понимать, как развернуть свое веб-приложение и сделать его доступным для всего мира. 1. Создайте базовое веб-приложение ASP.NET. Для разработки этой статьи я собираюсь использовать JetBrains Rider. Но вы можете использовать любой инструмент, какой захотите. Сначала вам нужно создать новый проект. Давайте назовем это простым « ». веб-приложением После создания нового проекта он должен выглядеть так: 2. Создайте образ Docker. Без каких-либо изменений в проекте мы сосредоточимся на . Измените его, как показано в следующем примере: Dockerfile FROM mcr.microsoft.com/dotnet/aspnet:6.0 as base WORKDIR /app EXPOSE 8080 ENV ASPNETCORE_URLS http://+:8080 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build COPY . /src WORKDIR /src RUN dotnet build "webapp.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "webapp.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "webapp.dll"] Вам необходимо обратить внимание на строки и , чтобы иметь возможность подключаться по HTTP к докер-контейнеру. EXPOSE 8080 ENV ASPNETCORE_URLS http://+:8080 Создайте образ докера из командной строки. Вам нужно перейти в каталог проекта и выполнить следующую команду: webapp DOCKER_BUILDKIT=1 docker buildx build --platform linux/amd64 --tag drmoz/webapp:latest . Я запускаю его на Mac M1, и мне нужно явно указать параметр , чтобы обеспечить совместимость с развертыванием Azure. Мне также нужно активировать Docker Buildkit, указав параметр и используя , чтобы иметь возможность создать образ для другой архитектуры. --platform DOCKER_BUILDKIT=1 buildx Если вы используете его на платформе Intel x86/x64, вы можете использовать команду без необходимости указывать параметр и активировать . docker build --platform buildx Вы можете пометить свое изображение по-другому, но поскольку я собираюсь использовать Docker Hub, мне нужно указать имя своей учетной записи: как часть тега изображения . drmoz drmoz/webapp:latest Когда образ создан, вы можете проверить, присутствует ли он в Docker, выполнив следующую команду: docker images Оно должно быть в списке: REPOSITORY TAG IMAGE ID CREATED SIZE drmoz/webapp latest 0cfac748256b 37 minutes ago 216MB Давайте запустим Docker-контейнер, чтобы убедиться, что вновь созданный образ работает нормально. Выполните команду , чтобы запустить контейнер: docker run docker run -p 5555:8080 drmoz/webapp:latest Укажите параметр , чтобы сопоставить порт внутри контейнера с портом вашего локального компьютера. Также укажите имя образа для создания контейнера. В моем случае это . -p 8080 5555 drmoz/webapp:latest Теперь вы можете перейти по адресу в своем браузере, чтобы увидеть домашнюю страницу веб-приложения ASP.NET Core. http://localhost:5555 Нам нужно отправить образ в . Перед этим вы должны зарегистрироваться в реестре Docker и создать репозиторий. Нажмите кнопку « » в правом углу главной страницы. Docker Hub Создать репозиторий Укажите поле и оставьте видимость репозитория . Repository Name Public В командной строке вам необходимо войти в реестр Docker Hub: docker login После этого вы сможете отправить вновь созданный образ в реестр: docker push drmoz/webapp:latest Перейдите в репозиторий, и вы увидите информацию об образе: 3. Создайте веб-приложение в Azure. Теперь мы готовы развернуть наше веб-приложение ASP.NET Core в Azure. Давайте войдем на портал Azure и создадим новую группу ресурсов. Укажите имя группы ресурсов как « » и нажмите кнопку «Просмотреть + создать». webapp-rg На следующем экране просто нажмите кнопку «Создать». Теперь мы можем создать веб-приложение. Перейдите на страницу «Создать ресурс» и найдите WebApp. Нажмите кнопку «Создать». Вам необходимо указать , которую мы создали ранее. Также укажите уникальное для веб-приложения. Выберите «Docker-контейнер» в поле . Позже мы сможем указать, какой образ Docker использовать. Resource Group Name Publish В разделе выберите любые подходящие варианты, но для тестовых целей я рекомендую использовать покрышку . Перейдите на вкладку Docker. Pricing plans Free F1 На этой вкладке выберите «Docker Hub» в поле . Выберите «Общедоступный» в поле », укажите с именем изображения, которое мы отправили в Docker Hub. Перейдите на вкладку «Просмотр + создание». На этой вкладке нажмите кнопку «Создать»: Image Source Access Type Image and tag Когда новый ресурс будет развернут, вас спросят, хотите ли вы перейти к этому ресурсу; просто сделай это. Вы сможете увидеть информацию о веб-приложении. Нажмите кнопку «Обзор», чтобы открыть развернутое веб-приложение. Если все прошло правильно, вы должны увидеть домашнюю страницу веб-приложения ASP.NET Core, аналогичную той, которую вы видели в своем браузере, перейдя по адресу . http://localhost:5555 Включить непрерывное развертывание Если вы перейдете к настройкам «Центр развертывания» и включите «Продолжение развертывания», вы сможете повторно развертывать свой образ каждый раз, когда вы отправляете новый в Docker Hub. Таким образом, вы можете внести изменения в свой код, отправить его в Docker Hub с новым образом и увидеть изменения за считанные минуты в Azure. Устранение неполадок веб-приложения Azure Чтобы иметь возможность просматривать журналы развертывания и выявлять проблемы, вам необходимо включить сохранение журналов в файловую систему в главе «Журналы службы приложений» следующим образом: Когда это будет сделано, вы можете перейти в «Центр развертывания» и просмотреть журналы следующим образом: Краткое содержание Если вы достигли этой точки, вам удалось создать веб-приложение ASP.NET Core; упакуйте его в образ Docker и разверните в Azure. Сегодня технологии облегчают жизнь и ускоряют процесс разработки. Вы увидите, насколько легко вы можете развернуть свое приложение у поставщика облачных услуг и предоставить его всему миру, выполнить некоторое тестирование и увидеть результат своей работы. Теперь вы можете подробно изучить облачные провайдеры Azure, воспользовавшись Microsoft. Также ознакомьтесь с Docker для более глубокого понимания этой технологии. Я надеюсь, что это может быть полезно. документацией документацией