Este artigo é parte da série:

Clique-direito no projeto e “Add”, “Docker Support…”

Vamos deixar as opções padrão, alterando apenas a última, “Docker Build Context”, para que ele monte apenas o nosso projeto e não a solução inteira.

Durante o processo de configuração o sistema irá pedir várias vezes autorização de acesso às pastas do projeto. Autorize todas as vezes.

Ao final do processo serão acrescentados os arquivos “Dockerfile”, “.dockerignore” e o arquivo “lauchSettings.json” será alterado, de modo a incluir a opção de execução no container nas opções de execução do programa.



Agora mude a opção de execução para “Container (Dcokerfile) execute o programa e perceba que:
- Ele está sendo executado a partir do docker e não mais a partir do computador hospedeiro. Isso pode ser observado no endereço do site.
- O Visual Studio agora apresenta uma nova aba “Containers”, mostrando informações detalhadas dos containers tendo até mesmo uma opção de navegar pelo arquivos do Linux.
- Execute o primeiro endpoint get do método ListaUF. Está funcionando perfeitamente.
- Execute o mesmo endpoint do método ADOMetodo e receba mensagem de erro 400 Bad Request, uma prova de que o programa está funcionando em um container, completamente isolado do computador local. Como lá no container não tem um SQL Server instalado nossa aplicação não consegue acessar o banco de dados, resultando no erro.



Abra o Docker Desktop e observe também que as imagens já foram criadas, tanto do ambiente .NET quanto do nosso projeto.

Com o ambiente montado até o momento, já é possível executar o projeto e debugar no Visual Studio, porém, caso queira que o website continue funcionando de forma independente, é necessário transformar aquela imagem em container. Para fazer isso, vá ao Docker, selecione a imagem e então clique em Run e preencha os parâmetros opcionais. No exemplo acima, eu cliquei no Run referente à imagem “treinorest02” e obtive o seguinte:

A imagem docker é criada apenas no computador local. Se você abrir a solução no Visual Studio em outro computador, será necessário montar a imagem novamente. Para isso, assim que clonar a solução para o novo computador, saia do Visual Studio entre novamente para ele remontar o ambiente. Isso fará com que a imagem seja reconstruída no Docker local. Caso ainda precise de fazer uma reconstrução manual, clique-direito em “Dockerfile” e então em “Build Docker Image”.





