Apr 16, 2023

Utilisation de docker pour jouer avec les nouvelles fonctionnalités C#

Leia este post em português

Read this post in English.

Dans cet post j'ai présente sharplab.io, un outil fantastique qui nous permettre compiler/exécuter/raisonner  sur a pièce de code C# en utilisent des versions de la langage en cours de développement, mais, même s'il s'agit d'une excellente ressource, il a encore quelques limitations:

  1. En mode exécution, il y a certaines restrictions sur ce qui peut être et ce qui ne peut pas être exécuté (compréhensible, en raison de problèmes de sécurité, d'utilisation des ressources, etc.)
  2. Vous devez disposer d'une connexion Internet pour l'utiliser (Je sais, je suis picky sur celui-ci).
  3. On a très peu contrôle sur les options du compilateur (comme la version du langage C#).
  4. Pas d'option pour déboguer le code

Donc, aujourd'hui, je veux vous montrer un autre outil dans votre boîte à outils pour obtenir un résultat similaire : utiliser Docker pour expérimenter de nouvelles fonctionnalités C# sans installer les versions preview .NET localement ou recourir à des compilateurs en ligne.

Cet article suppose que vous avez au moins une expérience de base avec Docker (cela ne nécessite cependant aucune connaissance des fonctionnalités sophistiquées). En gros, tout ce que vous avez à faire est de :

  1. Installer Docker
  2. Extrayez les dernières images nocturnes du référentiel Microsoft :
    docker pull mcr.microsoft.com/dotnet/nightly/sdk:latest
  3. Exécutez le conteneur :
    docker run -it mcr.microsoft.com/dotnet/nightly/sdk /bin/bash

et vous avez terminé ! Une fois que vous avez exécuté la commande 3, vous serez dans un terminal sur un container Doker avec la dernière version de .NET (au moment de la rédaction de cet article, .NET 8 Preview 4).

Vous pouvez désormais expérimenter de nouvelles API, de nouvelles fonctionnalités, etc.

Bien sûr, vous pouvez toujours vous simplifier la vie. Par exemple, au moment d'écrire ces lignes, l'image téléchargée n'a pas d'éditeur de texte raisonnable installé (désolé, fans de vi, je ne suis pas si geek) et essayer d'installer nano échoue avec un message indiquant qu'il n'y a pas de package candidat pour cela application. Pour  réparer cet problème est assez simple, il vous suffit d'exécuter apt update, puis apt install nano mais comme je suis paresseux, ma prochaine étape logique consiste à créer un Dockerfile basé sur les dernières images nocturnes de MS ajouter mes propres commandes personnalisées:

Et maintenant, vous pouvez créer une image personnalisée:

docker build . -t dotnet-latest 

docker run -it dotnet-latest

Une information importante dont vous devez être conscient si vous débutez avec Docker est que le contenu du container ne persiste pas d'une session à l'autre ; cela signifie que si vous créez/modifiez un fichier dans une session, son contenu sera perdu à la fin de cette session, à moins que vous ne preniez des mesures pour les conserver (malheureusement, expliquer comment faire cela dépasse les objectifs de cet article, mais selon chatgpt, c'est assez simple - je viens d'entrer la requête "comment conserver l'état sur plusieurs sessions docker").

Amuse toi!

No comments: