Erleben Sie .NET 5 mit Docker und Visual Studio Code

Einführung

.NET 5 wurde veröffentlicht. Wenn Sie jedoch kein LTS haben und sich fragen, wie es installiert werden soll, können Sie es mit Docker und Visual Studio Code ausprobieren. Dieses Mal habe ich die Erweiterung [Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-VisualStudio Code-remote.VisualStudio Code-remote-extensionpack) von VisualStudio Code verwendet, um .NET5 mit Docker zu starten. Lassen Sie uns überprüfen, ob das Programm ausgeführt / debuggt werden kann, indem Sie eine Verbindung zum Container herstellen.

Test-App erstellen und ausführen

Starten Sie zunächst den Test-App-Container, erstellen Sie ein ASP.NET MVC-Projekt und überprüfen Sie den Vorgang.

Starten des .NET5 SDK-Images

Um die in Docker auf der Seite des Host-Betriebssystems erstellten Dateien zu speichern, erstellen Sie ein Verzeichnis für die Volume-Bereitstellung und starten Sie das .NET 5 SDK-Image. Im ASP.NET MVC-Projekt wird http standardmäßig an Port 5000 und https an Port 5001 bereitgestellt. Ordnen Sie daher jeden Port zu.

mkdir src
docker run -it -p 5000:5000 -p 5001:5001 -v c:¥src:/src mcr.microsoft.com/dotnet/sdk:5.0

Erstellen Sie ein ASP.NET MVC-Projekt und führen Sie es aus

Sobald Sie eine Verbindung zum Container hergestellt haben, wechseln Sie in das gerade gemountete Verzeichnis / src und erstellen Sie ein neues MVC-Projekt.

cd /src
mkdir WebSite1
cd WebSite1/
dotnet new mvc
The template "ASP.NET Core Web App (Model-View-Controller)" was created successfully.
This template contains technologies from parties other than Microsoft, see https://aka.ms/aspnetcore/5.0-third-party-notices for details.

Processing post-creation actions...
Running 'dotnet restore' on /src/WebSite1/WebSite1.csproj...
  Determining projects to restore...
  Restored /src/WebSite1/WebSite1.csproj (in 67 ms).
Restore succeeded.

Wenn ich das Programm mit "dotnet run" ausführe, wird die folgende Fehlermeldung angezeigt, dass "localhost: 5000" nicht an IPV6 gebunden werden kann.

root@cc0ff91bfc60:/src/WebSite1# dotnet run                          
Building...
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
      Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
warn: Microsoft.AspNetCore.Server.Kestrel[0]
      Unable to bind to https://localhost:5001 on the IPv6 loopback interface: 'Cannot assign requested address'.
warn: Microsoft.AspNetCore.Server.Kestrel[0]
      Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.

Sie können es sicher starten, indem Sie "http: //0.0.0.0: 5000" mit dem Parameter --urls oder "http: // *: 5000" mit einem Platzhalter angeben.

root@cc0ff91bfc60:/src/WebSite1# dotnet run --urls http://*:5000
Building...
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
      Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://0.0.0.0:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /src/WebSite1

Wenn Sie mit einem Webbrowser darauf zugreifen, können Sie sehen, dass es angezeigt werden kann. image.png

Überprüfen Sie mit Visual Studio Code auf dem Host-PC

Stellen Sie mit Visual Studio Code eine Verbindung zu der im vorherigen Abschnitt erstellten Instanz in Docker her, überprüfen Sie den Inhalt des erstellten Projekts und prüfen Sie, ob die Debug-Funktion verwendet werden kann.

Installieren von VisualStudio Code-Erweiterungen

Installieren Sie die Erweiterung VisualStudio Code Remote Development (https://marketplace.visualstudio.com/items?itemName=ms-VisualStudio Code-remote.VisualStudio Code-remote-extensionpack). image.png

Am Behälter befestigen

Sie können eine Verbindung zu einem laufenden Container herstellen, indem Sie in der Befehlspalette "Remote-Container: An laufenden Container anhängen ..." ausführen. image.png Öffnen Sie das Verzeichnis / src / WebSite1 in VisualStudio Code, um die Projekte im Container anzuzeigen. image.png

Führen Sie das Debug aus

Führen Sie ".NET: Generieren von Assets zum Erstellen und Debuggen" aus der Befehlspalette aus, um die für das Debuggen erforderlichen Dateien (lanunch.json und task.json) zu Ihrem Projekt hinzuzufügen. image.png Wenn Sie mit dem Debuggen mit "F5" oder "Strg + Umschalt + D" beginnen, nachdem Sie die Datei zum Debuggen hinzugefügt haben, wird die Website nach dem Erstellen gestartet und der Webbrowser zum Debuggen wird gestartet. Danach können Sie mit der Debug-Funktion von Visual Studio Code so entwickeln, als würden Sie lokal entwickeln. image.png Wenn Sie die Umgebungsvariablen in Index.cshtml anzeigen, können Sie sehen, dass .NET auf der Containerseite funktioniert. image.png

Zusammenfassung

Wenn Sie es noch nicht in die Entwicklungsumgebung einfügen möchten, können Sie es ganz einfach ausprobieren. Probieren Sie es also bitte aus.

Referenz

Recommended Posts

Erleben Sie .NET 5 mit Docker und Visual Studio Code
Erste Schritte mit Java-Programmen mit Visual Studio Code
Versuchen Sie, Eclipse zu beenden und zu Visual Studio Code zu wechseln
Warum können Sie Java mit Visual Studio Code entwickeln?
Erstellen Sie eine Java-Programmentwicklungsumgebung mit Visual Studio Code
Docker-Management mit VS-Code
Java mit Visual Studio Code
Erstellen Sie mit Java + Spring eine Web-APP-Entwicklungsumgebung mit Visual Studio Code
Hallo Welt mit Docker und C Sprache
Erste Schritte mit Docker mit VS-Code
Microservices mit Docker- und Cloud-Leistung
Verwendung von PlantUML mit Visual Studio Code (erstellt am 30. Oktober 2020)
Was ich aus Java gelernt habe, funktioniert mit Visual Studio Code
Spring 5 MVC-Webanwendungsentwicklung mit Visual Studio Code Spring Security-Nutzung 1/3 [Vorbereitung]
Spring5 MVC-Webanwendungsentwicklung mit Visual Studio-Code Hello World Creation
Eine Aufzeichnung zum Einrichten einer Java-Entwicklungsumgebung mit Visual Studio Code
Erstellen einer Rails 6- und PostgreSQL-Umgebung mit Docker
Spring Boot2-Webanwendungsentwicklung mit Visual Studio Code SQL Server-Verbindung
Verknüpfen Sie Java- und C ++ - Code mit SWIG
Spring5 MVC-Webanwendungsentwicklung mit Visual Studio Code SQL Server-Verbindung
Spring Boot2-Webanwendungsentwicklung mit Visual Studio Code Hello World-Erstellung
Kommunizieren Sie zwischen Gitlab und Gitlab Runner, die mit Docker gestartet wurden
Entwicklung von Spring5 MVC-Webanwendungen mit Visual Studio Code Maven-Vorlagenerstellung
[Mac] Installieren Sie Java in Visual Studio Code
Versuchen Sie das Remote-Debuggen von Java mit Remote-Containern in Visual Studio Code Insiders
Spring 5 MVC-Webanwendungsentwicklung mit Visual Studio Code Spring Security-Verwendung 2/3 [Seitenerstellung 1/2]
Spring 5 MVC-Webanwendungsentwicklung mit Visual Studio Code Spring Security-Verwendung 3/3 [Seitenerstellung 2/2]
Fügen Sie in Java in Visual Studio Code die Option --enable-Preview hinzu
Java.home kann nicht mit Visual Studio-Code festgelegt werden.
Erstellen Sie mit Docker ein Jupyter-Notizbuch und führen Sie Ruby aus
Bereiten Sie eine Scraping-Umgebung mit Docker und Java vor
[Mac] Java in Visual Studio Code installieren (VS Code)
Verknüpfen Sie das Docker-Protokoll mit AWS CloudWatch und überwachen Sie es in Echtzeit mit VS Code
Installieren von Visual Studio Code unter Ubuntu 20.04 (Unterstützung für automatische Updates)
Ich konnte in Ubuntu20.04 + Visual Studio Code kein Japanisch eingeben
Ausgabeeinstellungen an die Debug-Konsole in Visual Studio Code
Greifen Sie mit ssh auf den Circle CI Docker-Container zu und debuggen Sie ihn
Schreiben Sie den Code für java.io.File mit java.nio.Path und java.nio.Files neu
Führen Sie Mosquitto mit Docker aus und versuchen Sie die WebSocket-Kommunikation mit MQTT
BinaryBuilder.jl ist erstaunlich ~ Kompilieren Sie automatisch mit Docker und konvertieren Sie c- und Fortran-Code in die Julia-Bibliothek
Speicherort für die Einstellung des Arbeitsbereichs, wenn Sie eine Remoteverbindung mit VSCode herstellen und an einem Docker-Container arbeiten