# Dockeriser une application ASP .NET Core

## Dockeriser une application ASP .NET Core

D'abord on build un exécutable de notre application : 

```bash
dotnet publish -c Release
```

On crée ensuite le Dockerfile suivante à la racine du projet

```dockerfile
# On part d'une image microsoft pour ASP .NET Core
FROM mcr.microsoft.com/dotnet/aspnet:6.0

# On copie notre résultat de publication dans le conteneur
COPY bin/Release/net6.0/publish/ App/

# On se place là où on a copié
WORKDIR /App

# On expose le port 80
EXPOSE 80

# On lance l'application
ENTRYPOINT ["dotnet", "net-web-tuto.dll"]
```

On peut ensuite build l'image :

```bash
docker build -t mon-image -f Dockerfile . 
```

Et enfin lancer l'image :

> Attention, si votre base de donnée est aussi un conteneur Docker tournant sur votre machine, dans l'hote de la base de donnée, notez non pas "localhost" mais l'adresse locale de votre machine pour permettre à la connexion de loopback entre vos conteneurs.

```bash
docker run \
	-p 80:80 \ 
	-e DATABASE_HOST=<IP de votre base de donnée> \
    -e DATABASE_NAME=testdb \
    -e DATABASE_USERNAME=root \ 
    -e DATABASE_PASSWORD=monMdpTresSecret \
    -t mon-image
```