Implantar um aplicativo do Spring Boot no Serviço de Aplicativo do Azure no Linux
Este tutorial descreve como usar o Docker para colocar seu aplicativo Spring Boot em um contêiner e implantar sua própria imagem do Docker em um host Linux no Serviço de Aplicativo do Azure.
Pré-requisitos
Para concluir as etapas deste tutorial, você precisa ter os seguintes pré-requisitos:
- Uma assinatura do Azure; se ainda não tiver uma assinatura do Azure, você poderá ativar o benefício de assinante do MSDN ou inscrever-se para uma conta gratuita do Azure.
- ACLI (interface de linha de comando) do Azure.
- Um JDK (Java Development Kit) com suporte. Para obter mais informações sobre os JDKs disponíveis para uso durante o desenvolvimento no Azure, confira Suporte a Java no Azure e no Azure Stack.
- A ferramenta de build Apache Maven (versão 3).
- Um cliente Git.
- Um cliente do Docker.
Observação
Devido aos requisitos de virtualização deste tutorial, você não pode seguir as etapas neste artigo em uma máquina virtual. Você deve usar um computador físico com recursos de virtualização habilitados.
Criar o aplicativo Web de Introdução ao Spring Boot no Docker
As etapas a seguir descrevem as etapas necessárias para criar um aplicativo Web Spring Boot simples e testá-lo localmente.
Abra um prompt de comando, crie um diretório local para conter o aplicativo e altere para o diretório. Por exemplo:
mkdir SpringBoot cd SpringBoot
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
Altere o diretório para o projeto concluído. Por exemplo:
cd gs-spring-boot-docker/complete
Crie o arquivo JAR usando o Maven. Por exemplo:
mvn package
Quando 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
Teste o aplicativo Web navegando até ele localmente usando um navegador da Web. Por exemplo, se você tiver ondulação disponível e tiver configurado o servidor Tomcat para ser executado na porta 80:
curl http://localhost
Você verá a seguinte mensagem exibida: Olá, mundo do Docker
Criar um Registro de Contêiner do Azure para usar como um Registro do Docker Privado
As etapas a seguir descrevem 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 do Docker privado usando a CLI do Azure 2.0.
Navegue até o portal do Azure e conecte-se.
Depois de entrar em sua conta no portal do Azure, siga as etapas no artigo Criar um registro de contêiner privado do Docker usando o portal do Azure , que são parafraseadas nas etapas a seguir por uma questão de conveniência.
Clique no ícone de menu de Novo, selecione Contêineres e escolha Registro de Contêiner do Azure.
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.
Selecione Chaves de acesso em Configurações e ative a opção Habilitado atrás do Usuário administrador.
Configurar o Maven a fim de criar uma imagem para o Registro de Contêiner do Azure
Navegue até o diretório do projeto completo de 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.
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>
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>
, aquimcr.microsoft.com/openjdk/jdk:11-ubuntu
. Especifique o nome da imagem final a ser criada 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 do primeiro build do 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>
Navegue até o diretório de projeto completo para o seu aplicativo Spring Boot e execute o seguinte comando para recompilar o aplicativo e fazer o push do contêiner ao Registro de Contêiner do Azure:
az acr login --name wingtiptoysregistry && mvn compile jib:build
Observação
- O comando
az acr login ...
tentará fazer logon 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. - Quando você estiver usando o Jib para enviar sua imagem para o Registro de Contêiner do Azure, a imagem não usará o Dockerfile, consulte este documento para obter detalhes.
Criar um aplicativo Web no Linux no Serviço de Aplicativo do Azure usando a imagem de contêiner
Navegue até o portal do Azure e conecte-se.
Clique no ícone de menu de Criar um recurso, selecione Computação e escolha Aplicativo Web.
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 existente ou 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.Escolha o Linux como o Sistema Operacional.
Selecione 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.
Na página Aplicativo Web, selecione Docker e insira as seguintes informações:
Selecione Contêiner Único.
Registro: Escolha seu recipiente, 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 start up
Depois de inserir todas as informações acima, selecione Revisar + criar.
- Selecione Examinar + criar.
Examine as informações e selecione Criar.
Depois que a implantação estiver concluída, selecione Ir para o recurso. A página de implantação exibirá a URL para acessar o aplicativo.
Observação
O Azure mapeará automaticamente as solicitações de Internet para o servidor Tomcat inserido que está em execução na porta -80. No entanto, se você tiver configurado seu servidor Tomcat inserido para ser executado na porta -8080 ou na porta personalizada, precisará adicionar uma variável de ambiente ao seu aplicativo Web que defina a porta do servidor Tomcat inserido. Para fazer isso, execute as seguintes etapas:
Navegue até o portal do Azure e conecte-se.
Selecione o ícone de Aplicativos Web e escolha seu aplicativo na página Serviços de Aplicativos.
Selecione Configuração no painel de navegação à esquerda.
Na seção Configurações de aplicativo, adicione uma nova configuração chamada WEBSITES_PORT e insira o número da porta personalizada para o valor.
Selecione OK. Em seguida, selecione Salvar.
Limpar os 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, continue no Spring no Centro de Documentação do Azure.
Confira também
Para obter mais informações sobre como usar aplicativos Spring Boot no Azure, confira os seguintes artigos:
Para obter mais informações sobre como usar o Azure com Java, confira Azure para Desenvolvedores Java e Como trabalhar com o Java e o Azure DevOps.
Para obter mais detalhes sobre o Spring Boot no projeto de exemplo do 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 de introdução sobre como criar um aplicativo Spring Boot simples, consulte o Spring Initializr em https://start.spring.io/.
Para obter mais exemplos sobre como usar imagens personalizadas do Docker com o Azure, veja Usando uma imagem personalizada do Docker para o Aplicativo Web do Azure no Linux.