paint-brush
Comment déployer une application Web ASP.NET Core dans Azure à partir de l'image Dockerpar@igorlopushko
956 lectures
956 lectures

Comment déployer une application Web ASP.NET Core dans Azure à partir de l'image Docker

par Igor Lopushko6m2024/01/19
Read on Terminal Reader

Trop long; Pour lire

Dans cet article, je vais donner un guide détaillé sur la façon de créer une application Web ASP.NET Core simple, de créer une image Docker avec votre application et sur le moyen le plus simple de la déployer sur Azure. Au final, vous comprendrez bien comment déployer votre application web et la rendre accessible au monde entier.
featured image - Comment déployer une application Web ASP.NET Core dans Azure à partir de l'image Docker
Igor Lopushko HackerNoon profile picture

Introduction

En tant que développeurs Web, nous avions l'habitude de trouver un hébergement approprié pour nos applications avec toutes les complications liées à leur déploiement et à leur maintenance. Mais nous vivons désormais dans une nouvelle ère dans laquelle les fournisseurs de cloud peuvent réaliser beaucoup de choses pour nous presque gratuitement. Quant aux développeurs .NET, Microsoft Azure semble le choix le plus naturel pour héberger des applications Web.


Docker est un autre élément technologique qui permet de faire abstraction de la plate-forme et de l'environnement dans lesquels vous exécutez votre application.


Dans cet article, je vais donner un guide détaillé sur la façon de créer une application Web ASP.NET Core simple, de créer une image Docker avec votre application et sur le moyen le plus simple de la déployer sur Azure. Au final, vous comprendrez bien comment déployer votre application web et la rendre accessible au monde entier.

1. Créer une application Web ASP.NET Core

Je vais utiliser JetBrains Rider pour le développement de cet article. Mais vous pouvez utiliser n’importe quel outil de votre choix.


Tout d'abord, vous devez créer un nouveau projet. Appelons cela simple « webapp ».

Créer une nouvelle solution


Après avoir créé un nouveau projet, il devrait ressembler à ceci :

Structure du projet


2. Créez une image Docker

Sans aucun changement dans le projet, nous allons nous concentrer sur le Dockerfile . Modifiez-le comme dans l'exemple suivant :

 FROM mcr.microsoft.com/dotnet/aspnet:6.0 as base WORKDIR /app EXPOSE 8080 ENV ASPNETCORE_URLS http://+:8080 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build COPY . /src WORKDIR /src RUN dotnet build "webapp.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "webapp.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "webapp.dll"]


Vous devez faire attention aux lignes EXPOSE 8080 et ENV ASPNETCORE_URLS http://+:8080 pour pouvoir vous connecter via HTTP au conteneur Docker.


Créez une image Docker à partir de la ligne de commande. Vous devez accéder au répertoire du projet webapp et exécuter la commande suivante :

 DOCKER_BUILDKIT=1 docker buildx build --platform linux/amd64 --tag drmoz/webapp:latest .


Je l'exécute sur Mac M1 et je dois spécifier explicitement le paramètre --platform pour être compatible avec le déploiement Azure. Je dois également activer le Docker Buildkit en spécifiant le paramètre DOCKER_BUILDKIT=1 et en utilisant buildx pour pouvoir construire une image pour une autre architecture.


Si vous l'exécutez sur la plate-forme Intel x86/x64, vous pouvez utiliser la commande docker build sans avoir besoin de spécifier le paramètre --platform et d'activer buildx .


Vous pouvez baliser votre image différemment, mais comme je vais utiliser Docker Hub, je dois spécifier mon nom de compte : drmoz dans le cadre de la balise d'image drmoz/webapp:latest .


Lorsqu'une image est construite, vous pouvez vérifier si elle est présente dans le Docker en exécutant la commande suivante :

 docker images


Il devrait être sur la liste :

 REPOSITORY TAG IMAGE ID CREATED SIZE drmoz/webapp latest 0cfac748256b 37 minutes ago 216MB


Exécutons le conteneur Docker pour vérifier que l'image nouvellement créée fonctionne correctement. Exécutez la commande docker run pour démarrer un conteneur :

 docker run -p 5555:8080 drmoz/webapp:latest


Spécifiez le paramètre -p pour mapper le port 8080 à l'intérieur du conteneur au port 5555 de votre ordinateur local. Spécifiez également le nom de l’image pour créer le conteneur. Dans mon cas, c'est drmoz/webapp:latest .


Vous pouvez désormais naviguer dans votre navigateur http://localhost:5555 pour voir la page d'accueil de l'application Web ASP.NET Core.

Application Web ASP.NET Core : page d'accueil



Nous devons pousser une image vers le Docker Hub . Avant cela, vous devez vous inscrire sur le Docker Registry et créer un référentiel. Cliquez sur le bouton ' Créer un référentiel ' dans le coin droit de la page d'accueil.

Le nouveau référentiel de Docker Hub


Spécifiez le champ Repository Name et conservez la visibilité du référentiel Public .


Dans la ligne de commande, vous devez vous connecter au registre Docker Hub :

 docker login


Après cela, vous pourrez transférer une image nouvellement créée vers le registre :

 docker push drmoz/webapp:latest


Accédez au référentiel et vous verrez les informations sur l'image :

Dépôt Docker Hub


3. Créez une application Web dans Azure

Nous sommes maintenant prêts à déployer notre application Web ASP.NET Core sur Azure. Connectons-nous au portail Azure et créons un nouveau groupe de ressources. Spécifiez le nom du groupe de ressources comme « webapp-rg » et cliquez sur le bouton « Réviser + créer ».


Créer un groupe de ressources : onglet De base


Sur l'écran suivant, cliquez simplement sur le bouton « Créer ».

Créer un groupe de ressources : onglet Réviser + créer


Maintenant, nous pouvons créer une application Web. Accédez à la page « Créer une ressource » et recherchez WebApp. Cliquez sur le bouton « Créer ».

Créer une application Web : onglet De base

Vous devez spécifier le Resource Group que nous avons créé précédemment. Spécifiez également un Name unique pour l'application Web. Sélectionnez « Docker Container » dans le champ Publish . Plus tard, nous pourrons spécifier quelle image Docker utiliser.


Sélectionnez les options appropriées dans la section Pricing plans , mais je recommande d'utiliser un pneu F1 gratuit à des fins de test. Accédez à l'onglet Docker.


Créer une application Web : onglet Docker


Sur cet onglet, sélectionnez « Docker Hub » dans le champ Image Source . Sélectionnez « Public » dans le champ Access Type et spécifiez la valeur Image and tag avec le nom de l'image que nous avons transférée vers Docker Hub. Accédez à l'onglet « Réviser + créer ». Sur cet onglet, cliquez sur le bouton « Créer » :

Créer une application Web : onglet Révision + Créer


Lorsque la nouvelle ressource est déployée, il vous sera demandé si vous souhaitez accéder à cette ressource ; fais-le c'est tout. Vous pourrez voir des informations concernant l'application Web.

Informations sur les ressources de l'application Web


Cliquez sur le bouton « Parcourir » pour ouvrir une application Web déployée. Si tout s'est bien passé, vous devriez voir la page d'accueil de l'application Web ASP.NET Core similaire à celle que vous avez vue dans votre navigateur en naviguant sur http://localhost:5555 .

Activer le déploiement continu

Si vous accédez aux paramètres du « Centre de déploiement » et activez « Continuer le déploiement », vous pourrez redéployer votre image chaque fois que vous en pousserez une nouvelle vers le Docker Hub. De cette manière, vous pouvez apporter des modifications à votre code, le transmettre au Docker Hub avec une nouvelle image et voir les modifications en quelques minutes dans Azure.

Application Web - Centre de déploiement

Dépannage de l'application Web Azure

Pour pouvoir consulter les journaux de déploiement et identifier les problèmes, vous devez activer l'enregistrement des journaux dans le système de fichiers dans le chapitre « Journaux App Service » comme suit :

Application Web – Journaux App Service


Une fois cela fait, vous pouvez accéder au « Centre de déploiement » et consulter les journaux comme suit :

Application Web - Centre de déploiement


Résumé

Si vous atteignez ce point, vous avez réussi à créer une application Web ASP.NET Core ; emballez-le dans l’image Docker et déployez-le sur Azure. De nos jours, la technologie facilite la vie et accélère le processus de développement. Vous pouvez voir avec quelle facilité vous pouvez déployer votre application sur le fournisseur de cloud et l'exposer au monde entier, effectuer des tests et voir le résultat de votre travail.


Vous pouvez désormais découvrir les détails des fournisseurs de cloud Azure à l'aide de la documentation Microsoft. Jetez également un œil à la documentation Docker pour une compréhension plus approfondie de cette technologie. J'espère que cela pourrait être utile.