Introdução Como desenvolvedores web, costumávamos encontrar hospedagem adequada para nossos aplicativos com todas as complicações de implantação e manutenção. Mas agora vivemos em uma nova era em que os provedores de nuvem podem fazer muitas coisas para nós quase sem nenhum custo. Quanto aos desenvolvedores .NET, o Microsoft Azure parece a escolha mais natural para hospedar aplicativos da web. Docker é outra tecnologia que permite abstrair a plataforma e o ambiente em que seu aplicativo está sendo executado. Neste artigo, darei um guia detalhado sobre como criar um aplicativo Web ASP.NET Core simples, criar uma imagem docker com seu aplicativo e a maneira mais fácil de implantá-lo no Azure. No final, você terá um bom entendimento de como implantar sua aplicação web e torná-la acessível para todo o mundo. 1. Crie um aplicativo Web ASP.NET Core Usarei o JetBrains Rider para fins de desenvolvimento neste artigo. Mas você pode usar qualquer ferramenta que desejar. Primeiro, você precisa criar um novo projeto. Vamos chamá-lo de simples ' '. webapp Depois de criar um novo projeto, ele deverá ficar assim: 2. Crie uma imagem Docker Sem nenhuma alteração no projeto, vamos focar no . Modifique-o conforme o exemplo a seguir: Dockerfile FROM mcr.microsoft.com/dotnet/aspnet:6.0 as base WORKDIR /app EXPOSE 8080 ENV ASPNETCORE_URLS http://+:8080 FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build COPY . /src WORKDIR /src RUN dotnet build "webapp.csproj" -c Release -o /app/build FROM build AS publish RUN dotnet publish "webapp.csproj" -c Release -o /app/publish FROM base AS final WORKDIR /app COPY --from=publish /app/publish . ENTRYPOINT ["dotnet", "webapp.dll"] Você precisa prestar atenção nas linhas e para poder se conectar via HTTP ao contêiner docker. EXPOSE 8080 ENV ASPNETCORE_URLS http://+:8080 Crie uma imagem docker na linha de comando. Você precisa navegar até o diretório do projeto e executar o seguinte comando: webapp DOCKER_BUILDKIT=1 docker buildx build --platform linux/amd64 --tag drmoz/webapp:latest . Estou executando-o no Mac M1 e preciso especificar o parâmetro explicitamente para ser compatível com a implantação do Azure. Também tenho que ativar o Docker Buildkit especificando o parâmetro e usando para poder construir uma imagem para outra arquitetura. --platform DOCKER_BUILDKIT=1 buildx Se você estiver executando-o na plataforma Intel x86/x64, poderá usar o comando sem a necessidade de especificar o parâmetro e ativar . docker build --platform buildx Você pode marcar sua imagem de maneira diferente, mas como vou usar o Docker Hub, preciso especificar o nome da minha conta: como parte da tag de imagem . drmoz drmoz/webapp:latest Quando uma imagem é construída, você pode verificar se ela está presente no Docker executando o seguinte comando: docker images Deveria estar na lista: REPOSITORY TAG IMAGE ID CREATED SIZE drmoz/webapp latest 0cfac748256b 37 minutes ago 216MB Vamos executar o contêiner docker para verificar se a imagem recém-criada funciona bem. Execute o comando para iniciar um contêiner: docker run docker run -p 5555:8080 drmoz/webapp:latest Especifique o parâmetro para mapear a porta dentro do contêiner para a porta da sua máquina local. Além disso, especifique o nome da imagem para criar o contêiner. No meu caso, é . -p 8080 5555 drmoz/webapp:latest Agora, você pode navegar em seu navegador para ver a página inicial do ASP.NET Core Web App. http://localhost:5555 Precisamos enviar uma imagem para o . Antes disso, você deve se registrar no Docker Registry e criar um repositório. Clique no botão ‘ ’ no canto direito da página inicial. Docker Hub Criar repositório Especifique o campo e mantenha a visibilidade do repositório . Repository Name Public Na linha de comando, você deve fazer login no registro do Docker Hub: docker login Depois disso, você poderá enviar uma imagem recém-criada para o registro: docker push drmoz/webapp:latest Navegue até o repositório e você verá as informações sobre a imagem: 3. Crie um aplicativo Web no Azure Agora, estamos prontos para implantar nosso aplicativo Web ASP.NET Core no Azure. Vamos fazer login no Portal do Azure e criar um novo grupo de recursos. Especifique o nome do grupo de recursos como ' ' e clique no botão 'Revisar + criar'. webapp-rg Na próxima tela, basta clicar no botão ‘Criar’. Agora podemos criar um Web App. Navegue até a página ‘Criar recurso’ e encontre WebApp. Clique no botão 'Criar'. Você precisa especificar o que criamos anteriormente. Além disso, especifique um exclusivo para o aplicativo Web. Selecione 'Docker Container' no campo . Posteriormente, poderemos especificar qual imagem Docker usar. Resource Group Name Publish Selecione qualquer opção adequada na seção , mas recomendo usar um pneu para fins de teste. Navegue até a guia Docker. Pricing plans F1 grátis Nesta guia, selecione 'Docker Hub' no campo . Selecione 'Público' no campo e especifique o valor da com o nome da imagem que enviamos para o Docker Hub. Navegue até a guia ‘Revisar + criar’. Nesta guia, clique no botão ‘Criar’: Image Source Access Type Image and tag Quando o novo recurso for implantado, você será perguntado se deseja navegar até esse recurso; apenas faça. Você poderá ver informações sobre o Web App. Clique no botão 'Navegar' para abrir um aplicativo da web implantado. Se tudo correr corretamente, você deverá ver a página inicial do ASP.NET Core Web App semelhante à que viu em seu navegador navegando . http://localhost:5555 Habilite a implantação contínua Se você navegar até as configurações do 'Centro de implantação' e ativar 'Continua a implantação', poderá reimplantar sua imagem sempre que enviar uma nova para o Docker Hub. Dessa forma, você pode fazer alterações em seu código, enviá-lo para o Docker Hub com uma nova imagem e ver as alterações em minutos no Azure. Solução de problemas do aplicativo Web do Azure Para poder ver os logs de implantação e identificar problemas, você precisa habilitar o salvamento de logs no sistema de arquivos no capítulo 'Logs do Serviço de Aplicativo' da seguinte forma: Quando terminar, você pode navegar até o ‘Centro de Implantação’ e ver os logs da seguinte forma: Resumo Se você chegar a este ponto, você conseguiu criar um aplicativo web ASP.NET Core; empacote-o na imagem do Docker e implante-o no Azure. Hoje em dia, a tecnologia facilita a vida e agiliza o processo de desenvolvimento. Você pode ver como é fácil implantar seu aplicativo no provedor de nuvem e expô-lo ao mundo inteiro, realizar alguns testes e ver o resultado do seu trabalho. Agora você pode mergulhar nos detalhes dos provedores de nuvem do Azure usando da Microsoft. Além disso, dê uma olhada na do Docker para uma compreensão mais profunda desta tecnologia. Espero que possa ser útil. a documentação documentação