Découvrez .NET 5 avec Docker et Visual Studio Code

introduction

.NET 5 a été publié, mais si vous n'avez pas LTS et que vous vous demandez comment l'installer, vous pouvez l'essayer avec Docker et Visual Studio Code. Cette fois, j'ai utilisé l'extension [Développement à distance](https://marketplace.visualstudio.com/items?itemName=ms-VisualStudio Code-remote.VisualStudio Code-remote-extensionpack) de VisualStudio Code pour démarrer .NET5 avec Docker. Vérifions si le programme peut être exécuté / débogué en se connectant au conteneur.

Créer et exécuter une application de test

Tout d'abord, lancez le conteneur d'application de test, créez un projet ASP.NET MVC et vérifiez l'opération.

Lancement de l'image du SDK .NET5

Afin d'enregistrer les fichiers créés dans Docker du côté du système d'exploitation hôte, créez un répertoire pour le montage du volume et démarrez l'image du SDK .NET 5. En outre, dans le projet ASP.NET MVC, http est fourni sur le port 5000 et https est fourni sur le port 5001 en standard, donc mappez chaque port.

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

Créer et exécuter un projet ASP.NET MVC

Une fois que vous êtes connecté au conteneur, accédez au répertoire / src que vous venez de monter et créez un nouveau projet MVC.

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.

Lorsque j'exécute le programme avec dotnet run, j'obtiens le message d'erreur suivant indiquant que localhost: 5000 ne peut pas être lié à IPV6.

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'.

Vous pouvez le démarrer en toute sécurité en spécifiant http: //0.0.0.0: 5000 avec le paramètre --urls ou http: // *: 5000 avec un caractère générique.

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

Si vous y accédez avec un navigateur Web, vous pouvez voir qu'il peut être affiché. image.png

Vérifier avec Visual Studio Code sur le PC hôte

Connectez-vous à l'instance dans Docker créée dans la section précédente avec Visual Studio Code, vérifiez le contenu du projet créé et vérifiez si la fonction de débogage peut être utilisée.

Installation des extensions de code VisualStudio

Installez l'extension VisualStudio Code Remote Development (https://marketplace.visualstudio.com/items?itemName=ms-VisualStudio Code-remote.VisualStudio Code-remote-extensionpack). image.png

Attacher au conteneur

Vous pouvez vous connecter à un conteneur en cours d'exécution en exécutant Remote-Containers: Attach to Running Container ... à partir de la palette de commandes. image.png Ouvrez le répertoire / src / WebSite1 dans VisualStudio Code pour voir les projets dans le conteneur. image.png

Lancer le débogage

Exécutez .NET: Generate Assets for Build and Debug à partir de la palette de commandes pour ajouter les fichiers nécessaires au débogage (lanunch.json et tasks.json) à votre projet. image.png Si vous commencez le débogage avec F5 ou Ctrl + Maj + D après avoir ajouté le fichier pour le débogage, le site Web démarrera après la construction et le navigateur Web pour le débogage démarrera. Après cela, vous pouvez utiliser la fonction de débogage de Visual Studio Code pour développer comme vous le feriez lors du développement local. image.png Si vous affichez les variables d'environnement dans Index.cshtml, vous pouvez voir que .NET du côté du conteneur fonctionne. image.png

Sommaire

Si vous ne voulez pas encore le mettre dans l'environnement de développement, vous pouvez l'essayer assez facilement, alors essayez-le.

référence

Recommended Posts

Découvrez .NET 5 avec Docker et Visual Studio Code
Prise en main des programmes Java à l'aide de Visual Studio Code
Essayez de quitter Eclipse et de passer à Visual Studio Code
Pourquoi pouvez-vous développer Java avec Visual Studio Code?
Créer un environnement de développement de programme Java avec Visual Studio Code
Gestion Docker avec VS Code
Java avec Visual Studio Code
Créer un environnement de développement Web APP avec Java + Spring avec Visual Studio Code
Hello World avec Docker et langage C
Premiers pas avec Docker avec VS Code
Microservices avec Docker et Cloud Performance
Comment utiliser PlantUML avec Visual Studio Code (créé le 30 octobre 2020)
Ce que j'ai appris en travaillant Java avec Visual Studio Code
Développement d'applications Web Spring 5 MVC avec Visual Studio Code Utilisation de Spring Security 1/3 [Préparation]
Développement d'applications Web Spring5 MVC avec Visual Studio Code Hello World Creation
Un enregistrement de la configuration d'un environnement de développement Java avec Visual Studio Code
Construction de Rails 6 et environnement PostgreSQL avec Docker
Développement d'applications Web Spring Boot2 avec connexion Visual Studio Code SQL Server
Lier le code Java et C ++ avec SWIG
Développement d'applications Web Spring5 MVC avec connexion Visual Studio Code SQL Server
Développement d'applications Web Spring Boot2 avec création de Visual Studio Code Hello World
Communiquer entre Gitlab et Gitlab Runner lancé avec Docker
Développement d'applications Web Spring5 MVC avec création de modèles Visual Studio Code Maven
[Mac] Installer Java dans Visual Studio Code
Essayez le débogage à distance Java avec des conteneurs distants dans Visual Studio Code Insiders
Développement d'applications Web Spring 5 MVC avec Visual Studio Code Utilisation de Spring Security 2/3 [Création de page 1/2]
Développement d'applications Web Spring 5 MVC avec Visual Studio Code Utilisation de Spring Security 3/3 [Création de page 2/2]
Ajouter l'option --enable-preview dans Java dans Visual Studio Code
Impossible de définir java.home avec le code Visual Studio.
Créez un notebook Jupyter avec Docker et exécutez ruby
Préparer un environnement de scraping avec Docker et Java
[Mac] Installer Java dans Visual Studio Code (VS Code)
Liez le journal Docker à AWS CloudWatch et surveillez en temps réel avec VS Code
Installation de Visual Studio Code sur Ubuntu 20.04 (prise en charge de la mise à jour automatique)
Je ne pouvais pas taper le japonais dans Ubuntu20.04 + Visual Studio Code
Paramètres de sortie vers la console de débogage dans Visual Studio Code
Accéder et déboguer le conteneur Docker Circle CI avec ssh
Réécrivez le code de java.io.File avec java.nio.Path et java.nio.Files
Exécutez Mosquitto avec Docker et essayez la communication WebSocket avec MQTT
BinaryBuilder.jl est incroyable ~ Compilation croisée automatique avec Docker et conversion du code c et Fortran en bibliothèque Julia
Emplacement des paramètres de l'espace de travail lors de la connexion à distance avec VSCode et du travail sur un conteneur Docker