Fermer

juin 29, 2021

Docker Bootcamp – Déboguer les conteneurs Windows


Bienvenue au bootcamp docker. Dans le article précédentnous avons appris comment passer des conteneurs Linux aux conteneurs Windows. Dans cet article, nous allons créer un nouveau projet .net et le déployer dans un conteneur. Nous verrons également comment attacher le débogueur au code s'exécutant à l'intérieur du conteneur. L'image IIS que nous utilisons pour cet exemple n'a pas de framework .net installé par défaut. Nous l'installerons une fois que notre conteneur sera opérationnel. Si vous construisiez votre propre image, vous pouvez l'installer dans le cadre de l'image.

Créer un projet Visual Studio

  • Ouvrir Visual Studio 2019
  • Créer un nouveau projet
    • Utiliser l'application Web asp.net du modèle de projet (framework .net)
    • Configurez votre projet
      • Choisissez le nom et l'emplacement de votre projet
      • Sélectionnez le framework .net 4.7.2
    • Créer une nouvelle application
      • Choisissez l'application MVC
      • Décochez la case pour configurer https
      • Décochez la case pour la prise en charge de docker
    • Cliquez sur le bouton Créer
  • Voir le site avec iis express
    • Cliquez sur démarrer le débogage dans le menu de débogage
      • Validez correctement les chargements du site d'exemples
  • Créer des paramètres de publication
    • Clic droit sur le projet -> Publier
    • Dans la fenêtre de la cible de publication, choisissez le dossier
    • Définissez l'emplacement du dossier sur « construire »
      • Ce chemin est relatif à votre solution
    • Cliquez sur Terminer
  • Publier la solution
    • Assurez-vous de publier à l'aide de la configuration de débogage
  • Modifier les autorisations sur le dossier cible de publication
    • Dans l'explorateur de fichiers, cliquez avec le bouton droit sur le dossier de construction -> Propriétés
    • Sur l'onglet Sécurité, cliquez sur modifier pour modifier les autorisations
    • Ajoutez l'utilisateur "Tout le monde"
    • Donnez à l'utilisateur Tout le monde lire et exécuter, lister le dossier contenu et autorisations de lecture
    • Cliquez sur Appliquer

Créer un conteneur Windows

  • Créer et démarrer un conteneur détaché, attacher un volume et mapper le port exposé à un port hôte spécifié
    • docker run -d -v build:c:inetpubwwwroot -p 8080:80 –name debugtest mcr.microsoft.com/windows/servercore/iis
  • Voir le site
    • Parcourir jusqu'à localhost :8080
      • Notez que le site iis par défaut se charge

Installer .NET Framework

  • Exécuter une commande pour démarrer un terminal powershell interactif
    • docker exec -it defaultsite powershell.exe
  • Activer .NET Framework pour IIS
    • dism /online /enable-feature /featurename:IIS-ASPNET45 /all
  • Voir le site
    • Parcourir jusqu'à localhost :8080
      • Validez correctement les chargements du site d'exemples

Afficher les conteneurs dans Visual Studio

Similaire à Docker Desktop ou à la commande docker inspect, cette fenêtre vous permet de voir de nombreux détails sur vos conteneurs. Vous pouvez voir l'état, les variables d'environnement, les mappages de ports, les journaux et parcourir le système de fichiers du conteneur.

  • Ouvrir la fenêtre des conteneurs
    • Affichage -> autres fenêtres -> conteneurs

Préparer le débogage

  • Ouvrir le fichier Controllers/HomeController.cs
  • Ajouter des points d'arrêt sur l'instruction de retour des méthodes Index et About

Debug Containers in Visual Studio

  • Option 1 – Depuis la fenêtre des conteneurs
    • Sélectionnez le conteneur
    • Cliquez sur l'icône Attacher au processus
      • Les champs type de connexion et cible de connexion sont automatiquement sélectionnés
  • Option 2 – Dans le menu Déboguer -> Attacher au processus
    • Sélectionnez le type de connexion Docker Windows Container
    • Cliquez sur Rechercher à côté de la cible de connexion
      • Cela listera les conteneurs Docker disponibles sur votre machine
      • Sélectionnez debugtest dans la liste
  • Cliquez sur sélectionner suivant pour joindre à
    • Sélectionnez Managed .NET 4x sous déboguer ces types de code
      • Si vos points d'arrêt ne se chargent pas, essayez de choisir une autre option ici
  • Sous la liste des processus disponibles, cochez la case pour afficher le processus de tous les utilisateurs
  • Dans la liste des processus disponibles, choisissez w3wp.exe
  • Cliquez sur attacher
  • Voir le site
    • Parcourir jusqu'à localhost :8080
      • Notez que les points d'arrêt sont atteints.

Nous avons maintenant un environnement de développement de conteneur Windows complet. Notre code source est stocké sur notre machine hôte et déployé dans un conteneur via un volume. Nous pouvons attacher le débogueur au conteneur et déboguer comme si le code s'exécutait sur la machine hôte.




Source link