Apprendre à déployer une application ASP.NET Core avec un conteneur Docker
Un billet d'Hinault Romaric

Le , par Hinault Romaric, Responsable .NET
Dans mon précédent billet, j’ai présenté comment nous pouvons déployer une application ASP.NET Core sous Linux en utilisant Nginx. Dans ce billet, nous verrons comment utiliser un conteneur Docker pour déployer notre application. Docker est une application open source permettant d’automatiser le déploiement d'applications dans des conteneurs logiciels.


La première chose à faire sera d’installer Docker en utilisant les commandes suivantes :

Code : Sélectionner tout
1
2
3
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 
sudo apt-get update 
sudo apt-get install lxc-docker
Pour s’assurer que Docker est installé, exécutez la commande suivante :

Code : Sélectionner tout
Docker
Ou

Code : Sélectionner tout
docker run hello-world

La création d’une application ASP.NET Core avec le générateur Yeoman ajoute par défaut à cette dernière un fichier Dockerfile. Le fichier est disponible à la racine du projet et contient les configurations nécessaires pour exécuter votre application dans un conteneur docker :

Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
11
12
13
FROM microsoft/dotnet:latest 
  
COPY . /app 
  
WORKDIR /app 
  
RUN ["dotnet", "restore"] 
  
RUN ["dotnet", "build"] 
  
EXPOSE 5100/tcp 
  
ENTRYPOINT ["dotnet", "run", "--server.urls", "http://0.0.0.0:5100"]


Lorsque nous allons procéder à la build de ce fichier avec Docker, une nouvelle image Docker sera créée. Cette dernière sera basée sur l’image Microsoft/dotnet. Cette image contient la dernière version du SDK .NET Core (le framework .NET Core et les outils en ligne de commande), permettant d’exécuter une application ASP.NET Core. Les fichiers du projet seront ensuite copiés dans un conteneur et ce dernier sera généré par Docker. Les commandes dotnet restore et dotnet build seront exécutés pour restaurer les packages du projet et générer ce dernier.

Puisqu’il s’agit d’une application web, le port sur lequel cette dernière doit être visible doit être défini, ainsi que son URL.

Vous devez exécuter la commande suivante dans le répertoire de votre application pour lancer la build de ce fichier, en spécifiant le nom de votre application après l’argument -t :

Code : Sélectionner tout
sudo docker build -t sampleapp.

Cette commande doit s'achever avec le « . »

Exécution de l’application

Vous pouvez vérifier que votre image a été créée correctement en utilisant les commandes suivantes :

Code : Sélectionner tout
sudo docker images

Pour lancer votre application, exécutez simplement la fenêtre suivante :

Code : Sélectionner tout
sudo docker run -it -p 5100:5100 sampleapp

Une fois votre application en cours d’exécution, vous pouvez ouvrir votre navigateur et saisir son adresse (http://localhost:5100/) pour obtenir un aperçu de cette dernière.


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster un commentaire

Avatar de elijah509 elijah509 - Futur Membre du Club https://www.developpez.com
le 08/05/2017 à 15:45
Telle qu'elle ca ne fonctionne pas si je ne m'abuse.

J'ai du faire un
Code : Sélectionner tout
dotnet new
(pour créer le projet, à l'image d'un
Code : Sélectionner tout
symfony new
par exemple) puis le lancer dotnet run avec l'option server.urls n'est pas pris en compte j'ai du ajouter un appel de méthode
Code : Sélectionner tout
UseUrls("http://0.0.0.0:5100")
dans
Code : Sélectionner tout
Program.cs
, avant l'appel de méthode
Code : Sélectionner tout
Build()
.
Avatar de Hinault Romaric Hinault Romaric - Responsable .NET https://www.developpez.com
le 27/06/2017 à 0:58
Citation Envoyé par elijah509;bt4936
Telle qu'elle ca ne fonctionne pas si je ne m'abuse.

J'ai du faire un
Code : Sélectionner tout
dotnet new
(pour créer le projet, à l'image d'un
Code : Sélectionner tout
symfony new
par exemple) puis le lancer dotnet run avec l'option server.urls n'est pas pris en compte j'ai du ajouter un appel de méthode
Code : Sélectionner tout
UseUrls("http://0.0.0.0:5100")
dans
Code : Sélectionner tout
Program.cs
, avant l'appel de méthode
Code : Sélectionner tout
Build()
.

Bonjour,

Dans le billet, je suppose que le lecteur dispose déjà d'une application ASP.NET Core et veut la déployer en utilisant Docker.

Sinon, j'ai un article plus complet ici : http://rdonfack.developpez.com/tutor...re-sous-linux/
Offres d'emploi IT
Ingénieur Etudes et Développement PHP Drupal
Degetel - Ile de France - Boulogne Billancourt
Développeur applicatif NTIC (H/F)
Atos - Lorraine - Metz/Strasbourg
Gestionnaire projet front-office h/f
SFIL - Ile de France - Issy-les-Moulineaux (92130)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil