Einführung Als Webentwickler mussten wir früher ein geeignetes Hosting für unsere Anwendungen finden, mit allen Komplikationen, die mit der Bereitstellung und Wartung einhergehen. Aber jetzt leben wir in einer neuen Ära, in der Cloud-Anbieter viele Dinge fast kostenlos für uns erledigen können. Für .NET-Entwickler scheint Microsoft Azure die naheliegendste Wahl zum Hosten von Webanwendungen zu sein. Docker ist eine weitere Technologie, die es ermöglicht, Ihre Anwendung von der Plattform und Umgebung zu abstrahieren, auf der Sie sie ausführen. In diesem Artikel gebe ich eine detaillierte Anleitung zum Erstellen einer einfachen ASP.NET Core-Webanwendung, zum Erstellen eines Docker-Images mit Ihrer Anwendung und zum einfachsten Weg, diese in Azure bereitzustellen. Am Ende verfügen Sie über ein gutes Verständnis dafür, wie Sie Ihre Webanwendung bereitstellen und für die ganze Welt zugänglich machen. 1. Erstellen Sie eine ASP.NET Core-Webanwendung Für die Entwicklung in diesem Artikel werde ich JetBrains Rider verwenden. Sie können aber jedes beliebige Werkzeug verwenden. Zuerst müssen Sie ein neues Projekt erstellen. Nennen wir es einfach „ “. Webapp Nach dem Erstellen eines neuen Projekts sollte es so aussehen: 2. Erstellen Sie ein Docker-Image Ohne Änderungen am Projekt konzentrieren wir uns auf die . Ändern Sie es wie im folgenden Beispiel: 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"] Sie müssen auf die Zeilen und achten, um eine Verbindung über HTTP zum Docker-Container herstellen zu können. EXPOSE 8080 ENV ASPNETCORE_URLS http://+:8080 Erstellen Sie ein Docker-Image über die Befehlszeile. Sie müssen zum Projektverzeichnis navigieren und den folgenden Befehl ausführen: webapp DOCKER_BUILDKIT=1 docker buildx build --platform linux/amd64 --tag drmoz/webapp:latest . Ich führe es auf einem Mac M1 aus und muss den Parameter explizit angeben, um mit der Azure-Bereitstellung kompatibel zu sein. Ich muss auch das Docker Buildkit aktivieren, indem ich den Parameter spezifiziere und verwende, um ein Image für eine andere Architektur erstellen zu können. --platform DOCKER_BUILDKIT=1 buildx Wenn Sie es auf der Intel x86/x64-Plattform ausführen, können Sie Befehl verwenden, ohne den Parameter angeben und aktivieren zu müssen. docker build --platform buildx Sie können Ihr Image anders markieren, aber da ich Docker Hub verwenden werde, muss ich meinen Kontonamen als Teil des Image-Tags angeben. drmoz drmoz/webapp:latest Wenn ein Image erstellt wird, können Sie überprüfen, ob es im Docker vorhanden ist, indem Sie den folgenden Befehl ausführen: docker images Es sollte auf der Liste stehen: REPOSITORY TAG IMAGE ID CREATED SIZE drmoz/webapp latest 0cfac748256b 37 minutes ago 216MB Lassen Sie uns den Docker-Container ausführen, um zu überprüfen, ob das neu erstellte Image einwandfrei funktioniert. Führen Sie Befehl aus, um einen Container zu starten: docker run docker run -p 5555:8080 drmoz/webapp:latest Geben Sie den Parameter an, um den Port im Container dem Port Ihres lokalen Computers zuzuordnen. Geben Sie außerdem den Bildnamen an, um den Container zu erstellen. In meinem Fall ist es . -p 8080 5555 drmoz/webapp:latest Jetzt können Sie in Ihrem Browser navigieren, um die Startseite der ASP.NET Core Web App anzuzeigen. http://localhost:5555 Wir müssen ein Image an den übertragen. Zuvor müssen Sie sich bei der Docker-Registrierung registrieren und ein Repository erstellen. Klicken Sie auf die Schaltfläche „ “ in der rechten Ecke der Startseite. Docker Hub Repository erstellen Geben Sie das Feld an und behalten Sie die Repository-Sichtbarkeit bei. Repository Name Public In der Befehlszeile müssen Sie sich bei der Docker Hub-Registrierung anmelden: docker login Danach können Sie ein neu erstelltes Image in die Registrierung übertragen: docker push drmoz/webapp:latest Navigieren Sie zum Repository und Sie sehen die Informationen zum Bild: 3. Erstellen Sie eine Web-App in Azure Jetzt sind wir bereit, unsere ASP.NET Core-Webanwendung in Azure bereitzustellen. Melden wir uns beim Azure-Portal an und erstellen eine neue Ressourcengruppe. Geben Sie den Namen der Ressourcengruppe als „ “ an und klicken Sie auf die Schaltfläche „Überprüfen + erstellen“. webapp-rg Klicken Sie im nächsten Bildschirm einfach auf die Schaltfläche „Erstellen“. Jetzt können wir eine Web-App erstellen. Navigieren Sie zur Seite „Ressource erstellen“ und suchen Sie nach „WebApp“. Klicken Sie auf die Schaltfläche „Erstellen“. Sie müssen die angeben, die wir zuvor erstellt haben. Geben Sie außerdem einen eindeutigen für die Web-App an. Wählen Sie im Feld „ “ „Docker-Container“ aus. Später können wir angeben, welches Docker-Image verwendet werden soll. Resource Group Name Publish Wählen Sie im Abschnitt alle geeigneten Optionen aus, ich empfehle jedoch die Verwendung eines Reifens für Testzwecke. Navigieren Sie zur Registerkarte Docker. Pricing plans kostenlosen F1- Wählen Sie auf dieser Registerkarte im Feld die Option „Docker Hub“ aus. Wählen Sie „Öffentlich“ im Feld “ aus und geben Sie das Wert mit dem Namen des Bildes an, das wir an Docker Hub übertragen haben. Navigieren Sie zur Registerkarte „Überprüfen + erstellen“. Klicken Sie auf dieser Registerkarte auf die Schaltfläche „Erstellen“: Image Source Access Type Image and tag Wenn die neue Ressource bereitgestellt wird, werden Sie gefragt, ob Sie zu dieser Ressource navigieren möchten. tun Sie es einfach. Sie können Informationen zur Web-App sehen. Klicken Sie auf die Schaltfläche „Durchsuchen“, um eine bereitgestellte Webanwendung zu öffnen. Wenn alles korrekt gelaufen ist, sollten Sie die ASP.NET Core Web App-Startseite sehen, die derjenigen ähnelt, die Sie in Ihrem Browser gesehen haben, indem navigiert haben. http://localhost:5555 Aktivieren Sie die kontinuierliche Bereitstellung Wenn Sie zu den „Deployment Center“-Einstellungen navigieren und „Bereitstellung fortsetzt“ aktivieren, können Sie Ihr Image jedes Mal erneut bereitstellen, wenn Sie ein neues an den Docker Hub übertragen. Auf diese Weise können Sie Änderungen an Ihrem Code vornehmen, ihn mit einem neuen Image an den Docker Hub übertragen und Änderungen in wenigen Minuten in Azure sehen. Fehlerbehebung bei Azure-Web-Apps Um Bereitstellungsprotokolle sehen und Probleme identifizieren zu können, müssen Sie das Speichern von Protokollen im Dateisystem im Kapitel „App Service-Protokolle“ wie folgt aktivieren: Wenn dies erledigt ist, können Sie zum „Deployment Center“ navigieren und die Protokolle wie folgt anzeigen: Zusammenfassung Wenn Sie diesen Punkt erreicht haben, ist es Ihnen gelungen, eine ASP.NET Core-Webanwendung zu erstellen. Packen Sie es in das Docker-Image und stellen Sie es in Azure bereit. Heutzutage erleichtert Technologie das Leben und beschleunigt den Entwicklungsprozess. Sie können sehen, wie einfach Sie Ihre Anwendung beim Cloud-Anbieter bereitstellen und der ganzen Welt zugänglich machen, einige Tests durchführen und das Ergebnis Ihrer Arbeit sehen können. Jetzt können Sie mithilfe der Microsoft- in die Details der Azure-Cloud-Anbieter eintauchen. Werfen Sie auch einen Blick auf die Docker- , um ein tieferes Verständnis dieser Technologie zu erhalten. Ich hoffe, es könnte hilfreich sein. Dokumentation Dokumentation