Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
9m 57s
Les conteneurs sont un outil puissant, mais pour de nombreux développeurs, l'idée de mettre une application C# dans un conteneur peut sembler insurmontable. La configuration d'un fichier Docker et la gestion manuelle des dépendances peuvent s'avérer compliquées. Toutefois, comme l'explique Tim Corey dans sa vidéo, l'interface de programmation .NET simplifie ce processus, en permettant aux développeurs de conteneuriser leurs applications sans avoir besoin d'un fichier Docker.
Dans cet article, nous allons approfondir la conteneurisation d'une application C# en utilisant l'approche étape par étape de Tim dans sa vidéo, "Conteneuriser votre application C# facilement avec la CLI .NET." En suivant les conseils de Tim, nous comprendrons comment publier une application .NET dans un conteneur Docker sans effort.
Au début de la vidéo, Tim explique la nécessité de la conteneurisation. Il souligne que si les conteneurs sont un outil formidable, le processus de création d'un fichier Docker et sa configuration correcte peuvent s'avérer complexes.
Au lieu de créer manuellement un fichier Docker, Tim présente une approche plus simple en utilisant le CLI .NET. Cette méthode permet aux développeurs de créer une application conteneurisée sans avoir à écrire manuellement un fichier Docker.
Tim précise également que cette vidéo fait partie de sa série de formations de 10 minutes, qui se concentre sur des introductions rapides et efficaces à des sujets techniques.
Tim commence par utiliser une application API Web minimale comme exemple. L'application contient un seul point d'accès appelé /messages, qui renvoie des données.
Pour démontrer le comportement de l'application avant la conteneurisation, Tim l'exécute localement. En accédant au point d'accès /messages, il confirme qu'il fonctionne correctement en dehors d'un conteneur.
Avant de procéder à la conteneurisation, il vérifie également que :
Cela permet de s'assurer que lorsqu'un nouveau conteneur est créé, les changements sont clairement visibles.
Pour conteneuriser l'application, Tim passe à la ligne de commande dans le répertoire du projet. Il exécute ensuite la commande suivante :
Tim décompose chaque partie de la commande :
-o:Linux → Publie l'application pour un conteneur basé sur Linux.-a:x64 → Spécifie l'architecture comme étant de 64 bits.-p:PublishProfile=DefaultContainer → Utilise les paramètres de conteneur par défaut.-c:Release → Publie l'application en mode release pour une meilleure performance.Tim insiste sur le fait que les conteneurs Linux sont préférables aux conteneurs Windows, car ces derniers servent principalement de passerelle pour les applications .NET Framework.
Une fois la commande de publication exécutée, Tim explique que la CLI .NET déterminera automatiquement les configurations nécessaires et regroupera le tout dans un conteneur. Il souligne que :
Après publication, il vérifie Docker Desktop et confirme que la nouvelle image de conteneur, background-demo, a été créée. La taille initiale du conteneur est de 221 Mo.
Tim rassure les téléspectateurs sur le fait que cette taille peut être réduite ultérieurement.
Pour tester l'application conteneurisée, Tim démarre le conteneur directement à partir de Docker Desktop. Comme il n'y a pas encore de conteneurs en cours d'exécution, il clique sur "Run" et définit un paramètre facultatif :
Après le lancement, il accède à l'application à l'aide d'un navigateur web. Initialement, accéder à l'URL racine donne une erreur 404, mais naviguer vers /messages affiche avec succès les données attendues.
Tim souligne un point important :
Il note également que l'application ayant été publiée en mode release, Swagger UI est désactivé par défaut.
À ce stade, la taille du conteneur par défaut est de 221 Mo, ce qui, de l'avis de Tim, est assez important. Pour réduire la taille, il introduit une image de base plus claire.
En modifiant le fichier Program.cs, il définit la famille de conteneurs sur jammy-chiseled, une image plus petite basée sur Ubuntu :
builder.Services.Configure<ContainerOptions>(options => options.ContainerFamily = "jammy-chiseled");builder.Services.Configure(Of ContainerOptions)(Sub(options) options.ContainerFamily = "jammy-chiseled")Il exécute à nouveau la commande de publication et, après avoir reconstruit le conteneur, il vérifie à nouveau la taille de l'image.
La nouvelle taille de l'image est de 113 Mo, soit une réduction d'environ 100 Mo ! Malgré sa taille réduite, l'application fonctionne de manière identique.
Tim montre comment supprimer le conteneur pour nettoyer l'espace de travail. Toutefois, l'image Docker reste disponible, de sorte que le conteneur peut être recréé si nécessaire.
Il insiste sur le fait qu'une fois le conteneur construit, il peut être :
Tim conclut la vidéo en renforçant les principaux avantages de l'utilisation de la CLI .NET pour la conteneurisation :
jammy-chiseled réduit la taille du conteneur.L'approche de Tim en matière de conteneurisation des applications C# à l'aide de l'interface de programmation .NET est simple, rapide et efficace. En suivant sa méthode, les développeurs peuvent créer et optimiser des conteneurs sans avoir besoin de connaissances approfondies sur Docker.
En exploitant les conteneurs Linux, les images de base optimisées et les commandes de publication rationalisées, cette technique permet aux développeurs de conteneuriser efficacement leurs applications avec un minimum d'efforts.
Si vous souhaitez aller plus loin, n'hésitez pas à consulter la vidéo de Tim Corey. Elle fournit une description claire, étape par étape, de l'ensemble du processus.
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy