Implantar um aplicativo Spring Boot no Linux no Serviço de Aplicativo do Azure

Este tutorial mostra como usar o Docker para containerizar a sua aplicação Spring Boot e implementar a sua própria imagem Docker num host Linux no Serviço de Aplicações do Azure.

Pré-requisitos

Para completar os passos deste tutorial, precisa dos seguintes pré-requisitos:

Observação

Devido aos requisitos de virtualização deste tutorial, não pode seguir os passos deste artigo numa máquina virtual. Deve usar um computador físico com funcionalidades de virtualização ativadas.

Criar o aplicativo Web Spring Boot no Docker Getting Started

As etapas a seguir percorrem as etapas necessárias para criar um aplicativo Web Spring Boot simples e testá-lo localmente.

  1. Abra um prompt de comandos e crie um diretório local para armazenar a sua aplicação, e mude para esse diretório; por exemplo:

    mkdir SpringBoot
    cd SpringBoot
    
  2. Clone o Spring Boot no Docker Getting Started projeto de exemplo no diretório que você criou; Por exemplo:

    git clone https://github.com/spring-guides/gs-spring-boot-docker.git
    
  3. Alterar diretório para o projeto concluído; Por exemplo:

    cd gs-spring-boot-docker/complete
    
  4. Construa o arquivo JAR usando o Maven; Por exemplo:

    mvn package
    
  5. Depois de criada a aplicação web, altere o diretório para o target diretório onde está localizado o ficheiro JAR e inicie a aplicação web; por exemplo:

    cd target
    java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80
    
  6. Teste o aplicativo Web navegando até ele localmente usando um navegador da Web. Por exemplo, se você tiver curl disponível e tiver configurado o servidor Tomcat para ser executado na porta 80:

    curl http://localhost
    
  7. Vê a seguinte mensagem exibida: Olá Docker World

    Explorar aplicação de exemplo localmente

Criar um Azure Container Registry para usar como um registo privado Docker

As etapas a seguir mostram como usar o portal do Azure para criar um Registro de Contêiner do Azure.

Observação

Se você quiser usar a CLI do Azure em vez do portal do Azure, siga as etapas em Criar um registro de contêiner privado do Docker usando a CLI do Azure 2.0.

  1. Navegue até o portal do Azure e inicie sessão.

    Depois de iniciar sessão na sua conta no portal Azure, siga os passos no artigo Criar um registo privado de contentores Docker usando o portal Azure. Os passos seguintes parafraseiam essas instruções por uma questão de conveniência.

  2. Selecione o ícone do menu para Novo, selecione Containers e depois selecione Azure Container Registry.

    Criar um novo Registro de Contêiner do Azure

  3. Quando aparecer a página Criar registo de contentores , introduza o nome do registo, Subscrição, Grupo de Recursos e Localização. Em seguida, selecione Criar.

    Definir definições do Registo de Contentor do Azure

  4. Seleciona as teclas de acesso em Definições e ativa o interruptor Ativado para o utilizador Administrador.

    Habilitar a interface do usuário administrador no portal do Azure

Configurar o Maven para criar uma imagem no seu Registro de Contêiner do Azure

  1. Vai ao diretório do projeto concluído para a tua aplicação Spring Boot - por exemplo, C:\SpringBoot\gs-spring-boot-docker\complete ou /users/robert/SpringBoot/gs-spring-boot-docker/complete - e abre o ficheiropom.xml com um editor de texto.

  2. Atualize o conjunto <properties> no ficheiro pom.xml com a versão mais recente de jib-maven-plugin, o valor do servidor de início de sessão e as definições de acesso do seu Azure Container Registry indicados na secção anterior deste tutorial. Por exemplo:

    <properties>
       <jib-maven-plugin.version>3.2.0</jib-maven-plugin.version>
       <docker.image.prefix>wingtiptoysregistry.azurecr.io</docker.image.prefix>
       <java.version>1.8</java.version>
    </properties>
    
  3. Adiciona jib-maven-plugin à <plugins> coleção no ficheiro pom.xml. Este exemplo usa a versão 3.2.0.

    Especifique a imagem base em <from>/<image>, aqui mcr.microsoft.com/openjdk/jdk:11-ubuntu. Especifique o nome da imagem final a construir a partir da base em <to>/<image>.

    A autenticação {docker.image.prefix} corresponde ao servidor de início de sessão na página do registo apresentada anteriormente. O {project.artifactId} é o nome e o número da versão do arquivo JAR da primeira compilação Maven do projeto.

    <plugin>
      <artifactId>jib-maven-plugin</artifactId>
      <groupId>com.google.cloud.tools</groupId>
      <version>${jib-maven-plugin.version}</version>
      <configuration>
         <from>
             <image>mcr.microsoft.com/openjdk/jdk:11-ubuntu</image>
         </from>
         <to>
             <image>${docker.image.prefix}/${project.artifactId}</image>
         </to>
      </configuration>
    </plugin>
    
  4. Vai ao diretório do projeto concluído da tua aplicação Spring Boot e executa o seguinte comando para reconstruir a aplicação e enviar o contentor para o teu Azure Container Registry:

    az acr login --name wingtiptoysregistry && mvn compile jib:build
    

Observação

O comando az acr login ... tenta iniciar sessão no Azure Container Registry. Caso contrário, tem de fornecer <username> e <password> para jib-maven-plugin. Para saber mais, consulte Métodos de Autenticação em jib.

Quando usas o Jib para enviar a tua imagem para o Azure Container Registry, a imagem não usa o Dockerfile. Para obter mais informações, consulte este artigo.

Crie uma aplicação web no Linux no Serviço de Aplicações do Azure usando a imagem do seu contentor

  1. Navegue até o portal do Azure e inicie sessão.

  2. Selecione o ícone do menu para Criar um recurso, selecione Calcular e depois selecione Aplicação Web.

    Criar um novo aplicativo Web no portal do Azure

  3. Quando aparecer a página Aplicação Web no Linux, introduza as seguintes informações:

    • Escolha a sua Subscrição na lista pendente.

    • Escolha um Grupo de Recursos existente ou especifique um nome para criar um novo Grupo de Recursos.

    • Insira um nome único para o nome da App; por exemplo: wingtiptoyslinux.

    • Especifique Docker Container até para publicar.

    • Para o campo Sistema Operacional, escolha Linux.

    • Selecione Região.

    • Aceite o Plano Linux e escolha um Plano de Serviço de Aplicativo existente, ou selecione Criar novo para criar um novo Plano de Serviço de Aplicativo.

    • Selecionar Próximo: Docker.

    Clique no botão Next: Docker para continuar.

    Na página do Web App, selecione Dockere insira as seguintes informações:

    • Selecione Contêiner Único.

    • Registro: Escolha seu contêiner, por exemplo: wingtiptoysregistry.

    • Image: Selecione a imagem criada anteriormente, por exemplo: spring-boot-docker.

    • Tag: Escolha a tag para a imagem, por exemplo: mais recente .

    • Comando de Arranque: Mantém em branco porque a imagem já tem o comando de iniciação.

    Depois de introduzir todas as informações anteriores, selecione Rever + criar.

    Concluir selecionando Revisar + Criar.

    • Escolha Rever e criar.

Reveja as informações e selecione Criar.

Quando a implementação estiver concluída, selecione Ir para recurso. A página de implantação exibe a URL para acessar o aplicativo.

Obter URL de implantação

Observação

O Azure mapeia automaticamente os pedidos de Internet para o servidor Tomcat embutido que corre na porta 80. No entanto, se configurares o teu servidor Tomcat embutido para correr na porta 8080 ou numa porta personalizada, precisas de adicionar uma variável de ambiente à tua aplicação web que defina a porta para o teu servidor Tomcat embutido. Para adicionar a variável de ambiente, use os seguintes passos:

  1. Navegue até o portal do Azure e inicie sessão.

  2. Selecione o ícone do Aplicações Webe selecione seu aplicativo na página Serviços de Aplicativo .

  3. Selecione Configuração no painel de navegação à esquerda.

  4. Na secção das Configurações do Aplicativo, adicione uma nova configuração denominada WEBSITES_PORT e insira o seu número de porta personalizado como valor.

  5. Selecione OK. Em seguida, selecione Salvar.

Guardar um número de porta personalizado no portal do Azure

Limpar recursos

Quando já não precisares dos recursos, usa o portal do Azure para os apagar. Eliminar os recursos ajuda-o a evitar cobranças inesperadas.

Próximos passos

Para saber mais sobre o Spring e o Azure, continue para o centro de documentação do Spring on Azure.

Ver também

Para obter mais informações sobre como usar aplicativos Spring Boot no Azure, consulte os seguintes artigos:

Para obter mais informações sobre como usar o Azure com Java, consulte o Azure for Java Developers e o Trabalhando com o Azure DevOps e o Java.

Para obter mais detalhes sobre o projeto de exemplo Spring Boot no Docker, consulte Spring Boot on Docker Getting Started.

Para obter ajuda com a introdução aos seus próprios aplicativos Spring Boot, consulte o Spring Initializr em https://start.spring.io/.

Para obter mais informações sobre como começar a criar um aplicativo Spring Boot simples, consulte o Spring Initializr em https://start.spring.io/.

Para mais exemplos de como usar imagens Docker personalizadas com Azure, consulte Usar uma imagem Docker personalizada para Azure Web App no Linux.