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

Este tutorial explica como usar o Docker para colocar em contêiner sua aplicação Spring Boot e implantar sua própria imagem Docker em um host Linux em um Serviço de Aplicativo do Azure.

Pré-requisitos

Para concluir as etapas neste tutorial, você precisa ter os seguintes pré-requisitos:

Nota

Devido aos requisitos de virtualização deste tutorial, você não pode seguir as etapas deste artigo em uma máquina virtual; você deve usar um computador físico com recursos de virtualização habilitados.

Criar o spring boot no aplicativo Web de introdução do Docker

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 comando e crie um diretório local para manter seu aplicativo e altere para esse diretório; por exemplo:

    mkdir SpringBoot
    cd SpringBoot
    
  2. Clone o exemplo de projeto Introdução ao Spring Boot no Docker para o diretório criado. Por exemplo:

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

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

    mvn package
    
  5. Depois que o aplicativo Web tiver sido criado, altere o diretório para o diretório target em que o arquivo JAR está localizado e inicie o aplicativo 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 o curl disponível e tiver configurado o servidor Tomcat para ser executado na porta 80:

    curl http://localhost
    
  7. Você deverá ver a seguinte mensagem exibida: Hello Docker World

    Procurar aplicativo de exemplo localmente

Criar um Registro de Contêiner do Azure para usar como um Registro privado do Docker

As etapas a seguir percorrem o uso do portal do Azure para criar um Registro de Contêiner do Azure.

Nota

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 conecte-se.

    Depois de entrar em sua conta no portal do Azure, siga as etapas do artigo Criar um registro de contêiner privado do Docker usando o portal do Azure, que são parafraseadas nas etapas a seguir para conveniência.

  2. Clique no ícone de menu de Novo, selecione Contêineres e escolha Registro de Contêiner do Azure.

    criar um novo registro de contêiner do Azure

  3. Quando a página Criar registro de contêiner for exibida, insira o Nome do registro, a Assinatura, o Grupo de recursos e a Localização. Em seguida, selecione Criar.

    definir as configurações do Registro de Contêiner do Azure

  4. Selecione Chaves de acesso em Configurações e ative a opção Habilitado atrás do Usuário administrador.

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

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

  1. Navegue até o diretório de projeto concluído para seu aplicativo Spring Boot (por exemplo: C:\SpringBoot\gs-spring-boot-docker\complete ou /users/robert/SpringBoot/gs-spring-boot-docker/complete) e abra o arquivo pom.xml com um editor de texto.

  2. Atualize a coleção <properties> no arquivo pom.xml com a versão mais recente do jib-maven-plugin, o valor do servidor de logon e as configurações de acesso para o Registro de Contêiner do Azure da seçã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. Adicione jib-maven-plugin à coleção <plugins> no arquivo 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 ser criada a partir da base em <to>/<image>.

    A autenticação {docker.image.prefix} é o Servidor de logon na página de registro mostrada anteriormente. O {project.artifactId} é o nome e o número de 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. Navegue até o diretório de projeto concluído para seu aplicativo Spring Boot e execute o seguinte comando para recompilar o aplicativo e enviar o contêiner por push para o Registro de Contêiner do Azure:

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

Nota

  1. O comando az acr login ... tentará fazer login no Registro de Contêiner do Azure, caso contrário, você precisará fornecer <username> e <password> para jib-maven-plugin, consulte Métodos de Autenticação no jib.
  2. Quando você estiver usando o Jib para enviar sua imagem por push para o Registro de Contêiner do Azure, a imagem não usará o Dockerfile. Confira este documento para obter detalhes.

Criar um aplicativo Web no Linux no Serviço de Aplicativo do Azure usando sua imagem de contêiner

  1. Navegue até o portal do Azure e conecte-se.

  2. Clique no ícone de menu para Criar um recurso, selecione Computação , e em seguida selecione Aplicativo Web .

    Criar um novo aplicativo Web no portal do Azure

  3. Quando a página Aplicativo Web no Linux for exibida, insira as seguintes informações:

    • Escolha uma Assinatura na lista suspensa.

    • Escolha um grupo de recursos existenteou especifique um nome para criar um novo grupo de recursos.

    • Insira um nome exclusivo para o nome do aplicativo ; por exemplo: wingtiptoyslinux

    • Especifique Docker Container para Publicar.

    • No campo Sistema Operacional, escolha Linux.

    • Selecione a Região.

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

    • Clique em Avançar: Docker.

    Clique no botão Avançar: Docker para continuar.

    Na página Aplicativo Web, selecione Docker e insira as seguintes informações:

    • Selecione Contêiner Único.

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

    • Imagem: selecione a imagem criada anteriormente, por exemplo: spring-boot-docker .

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

    • comando de inicialização: mantenha-o em branco, pois a imagem já tem o comando de inicialização

    Depois de inserir todas as informações acima, selecione Examinar + criar.

    Concluir selecionando Revisar + Criar.

    • Selecione Examinar + criar.

Examine as informações e selecione Criar.

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

Obtenha a URL de implantação

Nota

O Azure mapeará automaticamente as solicitações da Internet para o servidor Tomcat inserido que está em execução na porta – 80. No entanto, se você configurou seu servidor Tomcat inserido para ser executado na porta – 8080 ou porta personalizada, será necessário adicionar uma variável de ambiente ao seu aplicativo Web que defina a porta para o servidor Tomcat inserido. Para fazer isso, use as seguintes etapas:

  1. Navegue até o portal do Azure e conecte-se.

  2. Selecione o ícone para Aplicativos Web e selecione seu aplicativo na página de Serviços de Aplicativo .

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

  4. Na seção de configurações do aplicativo , adicione uma nova configuração chamada WEBSITES_PORT e insira o número da porta personalizada como valor.

  5. Selecione OK. Em seguida, selecione Salvar.

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

Limpar recursos

Quando não for mais necessário, use o portal do Azure para excluir os recursos criados neste artigo para evitar cobranças inesperadas.

Próximas etapas

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

Consulte 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 Azure para Desenvolvedores Java e Trabalhando com Azure DevOps e Java.

Para obter mais detalhes sobre o projeto de exemplo Spring Boot no Docker, consulte Introdução ao Spring Boot no Docker.

Para obter ajuda na introdução a seus próprios aplicativos Spring Boot, confira 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 obter exemplos adicionais de como usar imagens personalizadas do Docker com o Azure, consulte Usando uma imagem personalizada do Docker para o Aplicativo Web do Azure no Linux.