Neste artigo veremos como criar uma aplicação Web MVC e conteinerizar essa aplicação usando o Docker. Vou usar a versão 3.1 do .NET Core SDK, da ASP .NET e do runtime. |
Nossa aplicação foi criada e testada e agora vamos criar um arquivo Dockerfile e criar uma imagem customizada usando as imagens do .NET Core SDK 3.1 , e da ASP .NET Core 3.1.
recursos usados:
Criando o arquivo Dockerfile
Vamos abrir o projeto criado na pasta projetos/mvc31 digitando o comando : code .
A seguir veremos nosso projeto aberto no VS Code e vamos criar um arquivo chamado Dockerfile.
Neste arquivo vamos definir o código abaixo:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build-env
WORKDIR /app
# Copiar csproj e restaurar dependencias
COPY *.csproj ./
RUN dotnet restore
RUN pwsh -Command Write-Host "Mvc31: Gerando imagem Docker e testando o PowerShell Core"
# Build da aplicacao
COPY . ./
RUN dotnet publish -c Release -o dist
# Build da imagem
FROM mcr.microsoft.com/dotnet/core/aspnet:3.1
WORKDIR /app
COPY --from=build-env /app/dist .
ENTRYPOINT ["dotnet", "mvc31.dll"]
|
Abaixo o arquivo no VS Code:
Abaixo os comandos usados no Dockerfile:
FROM - O primeiro argumento do Dockerfile deve ser sempre o FROM, seguido da imagem e versão que será utilizada. Caso não seja informada a versão, o Docker vai procurar a mais atual do seu repositório oficial.
WORKDIR - Define a pasta padrão no contâiner
COPY - Copia arquivos do seu ambiente para o contâiner.Ex: COPY origem destino
RUN: executa os comandos dentro do container;
ENTRYPOINT - Define o
aplicativo padrão usado toda vez que um contêiner é criado a partir da
imagem.
Processando o
arquivo Dockerfile
Muito bem já temos o arquivo Dockerfile que descreve as etapas que serão executadas para criar a imagem.
Para processar o arquivo Dockerfile usamos o comando : docker build -t <imagem> .
Vamos supor que quero criar a imagem com o nome e tag : mvc31/app:1.0
Para fazer isso usamos o comando build e informamos o nome da imagem, a tag e um ponto(.).
O comando fica assim: docker build -t mvc31/app:1.0 .
onde:
docker build -> O comando
-t ->
Parâmetro usado para informar que a imagem pertence ao meu usuário
mvc31/app:1.0
-> O nome da imagem e a tag atribuída à imagem
. ->
significa o diretório atual (pois dei o build dentro da pasta do
Dockerfile)
Ao final da execução do comando poderemos conferir a imagem criada digitando : docker images
Agora podemos criar o contâiner para nossa aplicação ASP .NET Core a partir da imagem mvc31/app:1.0 criada.
Criando o container da aplicação ASP .NET Core MVC 3.1
Vamos agora criar um contâiner a partir da imagem criada. Para isso digite o seguinte comando:
docker container run -d --name testemvc31 -p 3000:80 mvc31/app:1.0
Este comando cria um contâiner em segundo plano (-d) chamado testemvc31 que atende na porta 3000 no navegador.
Para verificar o contâiner criado e em execução digite o comando : docker container ps -a
Agora podemos abrir um navegador em : https://localhost:3000 e veremos o resultado abaixo:
Temos assim o
contâiner com nossa aplicação ASP .NET Core MVC 3.1 sendo executado em um
contâiner Docker no ambiente
Linux.
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Visual Studio - Dica de produtividade - Quick Launch - Macoratti.net
Visual Studio - Dica de produtividade - Nuget - Macoratti.net
ASP .NET Core - Acesso ao MySQL c/ EF Core usando o Docker no ...
Docker - Uma introdução básica - Macoratti
Minicurso Docker - Apresentando o Docker - Macoratti
Curso Docker Essencial para .NET Core - Macoratti.net