Olá Pessoal,

Neste post irei mostrar como instalar uma aplicação em .NET rodando dentro de um Windows Container, tudo isso usando docker e powershell.

Primeiro, se você ainda não instalou o docker no seu windows server, assista esse vídeo, para instalar windows server 2016 ou esse para instalar no windows server 2019


Segundo, segue abaixo o dockerfile utilizado com o passo-a-passo, para criacao da nossa imagem.
Neste exemplo nos iremos utilizar o windows server 2019 e o .NET Framework 4.8


# https://hub.docker.com/u/leandroscar
FROM leandroscar/dotnet-sdk-4.8-windows-ltsc2019 AS build
WORKDIR /app

# copy csproj and restore as distinct layers / copiando csproj e restaurando distinct layers
COPY *.sln .
COPY aspnetapp/*.csproj ./aspnetapp/
COPY aspnetapp/*.config ./aspnetapp/
RUN nuget restore

# copy everything else and build app / Copiando os arquivos e criando o app
COPY aspnetapp/. ./aspnetapp/
WORKDIR /app/aspnetapp
RUN msbuild /p:Configuration=Release

# final stage/image / Imagem final
FROM leandroscar/dotnet-4.8-windows-ltsc2019 AS runtime
WORKDIR /inetpub/wwwroot
COPY --from=build /app/aspnetapp/. ./


Agora com o docker instalado e que já vimos como esta estruturado o nosso docker file.
O próximo passo, será executar os comandos abaixo, para baixar o dockerfile supracitado e salvar no caminho “C:\ws\dotnetapp” ,.


Invoke-WebRequest https://github.com/leandroscardua/Windows-Container/raw/master/dockerfile/dotnetapp/dotnetapp.zip -UseBasicParsing -OutFile ( New-Item -Path “C:\ws\dotnetapp\dotnetapp.zip” -Force)
cd C:\ws\dotnetapp\
Expand-Archive -Path dotnetapp.zip -DestinationPath C:\ws\dotnetapp\


Após a execução do script anterior, nos podemos executar o comando abaixo para criar a imagem, usando a tag local:dotnetapp 


docker build -t local:dotnetapp .


Segue o output do comando em partes:

PS C:wsiis> docker build -t local:dotnetapp .
Sending build context to Docker daemon 2.995MB
Step 1/12 : FROM leandroscar/dotnet-sdk-4.8-windows-ltsc2019 AS build
latest: Pulling from leandroscar/dotnet-sdk-4.8-windows-ltsc2019
4612f6d0b889: Already exists
fc1b9e59edad: Already exists

Removing intermediate container d208ec47e49e
—> deb8d73b7f23
Step 10/12 : FROM leandroscar/dotnet-4.8-windows-ltsc2019 AS runtime
latest: Pulling from leandroscar/dotnet-4.8-windows-ltsc2019
4612f6d0b889: Already exists
fc1b9e59edad: Already exists

Status: Downloaded newer image for leandroscar/dotnet-4.8-windows-ltsc2019:latest
—> 3c89fb83aebc
Step 11/12 : WORKDIR /inetpub/wwwroot
—> Running in 873e4800d48e
Removing intermediate container 873e4800d48e
—> 8f1ae93d0888
Step 12/12 : COPY –from=build /app/aspnetapp/. ./
—> 37125b0ac741
Successfully built 37125b0ac741

Valeu pessoal, até a próxima.

 

Deixe uma resposta