Como rodar seu Projeto ASP.NET6 no Docker
Bom dia pessoal, hoje vim aqui compartilhar com vocês como subir sua API .NET6 no container Docker. O que é necessario?
- 1° Baixar o Docker Desktop.
- 2° Ter sua API em .net6 obs pode ser em outra versão anterior, tera que alterar no Docker File alguns parametros de SDK e Runtimes
Repositorio GitHub: Docker-Example
Crie o Docker File na raiz do seu projeto e cole o codigo abaixo
`FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build WORKDIR /src
COPY .sln . COPY API/.csproj ./api/ RUN dotnet restore
COPY API/. ./api/ WORKDIR /src/api RUN dotnet publish -o ./dist
FROM mcr.microsoft.com/dotnet/aspnet:6.0 WORKDIR /app COPY ./API/dist . ENTRYPOINT ["dotnet", "API.dll"]`
Antes de começarmos precisamos saber uma coisa, existe dois tipos de repositorio nesse codigo, o primeiro repositorio é do seu computador e o segundo é um repositorio que o docker cria dentro do container, sabendo disso vamos continuar.
No primeiro Bloco de Codigo, está buscando a imagem do SDK .net6 e esta dizendo que o diretorio de trabalho onde vai ser executado dentro de uma pasta que eu nomeei de SRC(dentro do container).
No segundo Bloco de Codigo, ele está copiando os arquivos com final .csproj da pasta API(pasta onde esta o meu codigo dentro do meu PC, no caso é o nome da pasta onde fica sua API) e colando em uma pasta que nomeei de api(dentro do container), e ele esta rodando o comando dotnet restore
que vai restaurar todas as dependencias da sua API.
No terceiro Bloco de Codigo, ele vai copiar todos os arquivos da pasta API(do seu PC) para a pasta api(do container), sinaliza que esta navegando ate a pasta src/api(do container) para executar o comando dotnet publish -o ./dist
, no comando ele ira dar o publish que quer dizer que ele vai gerar um arquivo NOMEDAAPI.dll da sua API, e os arquivos gerados irão ficar na pasta chamada dist(dentro do PC).
No quarto Bloco de Codigo, ele busca a imagem de runtime do aspnet 6, navega ate uma pasta chamada app que eu nomeei e copio todos os arquivos que estao dentro do dist(do seu PC) e colo dentro da pasta app(do container), e finalizando ele vai na pasta app e executa o comando dotnet NOMEDAAPI.dll
.
**Obs: na linha onde tem o ENTRYPOINT ["dotnet", "NOMEDAAPI.dll"]
, tem que colocar o nome da sua API, se não colocar certinho não vai funcionar. **
Para subir o container precisa ir no terminal e digitar
docker build -t name-image .
esse comando vai criar uma imagem da sua API e pode nomear do jeito que desejar no lugar do name-image.
docker container run -p 5000:80 name-image
esse comando vai criar um container rodando na porta 5000 usando a imagem que criou no passo anterior.
Agora so testar indo para localhost:5000/
.
Se alguem saber como faz para subir no Docker Projeto Angular e BD manda nos comentarios, Vlw.
Só lembrando, se a pessoa quiser executar esse mesmo dockerfile, ela tem que mudar alguns nomes, e adaptar pro mesmo da aplicação dela. Dica importante!