Implementar uma aplicação do Spring Boot no Linux no Serviço de Aplicações do Azure
Este tutorial explica como utilizar o Docker para colocar a aplicação do Spring Boot num contentor e implementar a sua própria imagem de docker num anfitrião Linux no Serviço de Aplicações do Azure.
Pré-requisitos
Para concluir os passos apresentados neste tutorial, são necessários os seguintes pré-requisitos:
- Uma subscrição do Azure. Se ainda não tiver uma subscrição do Azure, pode ativar os seus benefícios de subscritor do MSDN ou inscrever-se numa conta gratuita do Azure.
- A Interface de Linha de Comandos (CLI) do Azure.
- Um Java Development Kit (JDK) suportado. Para obter mais informações sobre os JDKs disponíveis para uso ao desenvolver no Azure, consulte Suporte a Java no Azure e Azure Stack.
- Ferramenta de construção Apache Maven (Versão 3).
- Um cliente Git.
- Um cliente Docker.
Nota
Devido aos requisitos de virtualização deste tutorial, não é possível seguir os passos apresentados neste artigo numa máquina virtual. Tem de utilizar um computador físico com as funcionalidades de virtualização ativadas.
Criar a aplicação Web "Spring Boot on Docker Getting Started" (Introdução ao Spring Boot no Docker)
Em seguida, são explicados os passos necessários para criar uma aplicação Web do Spring Boot simples e testá-la localmente.
Abra uma linha de comandos, crie um diretório local para incluir nele a sua aplicação e mude para esse diretório. Por exemplo:
mkdir SpringBoot cd SpringBoot
Clone o projeto de exemplo Spring Boot on Docker Getting Started (Introdução ao Spring Boot no Docker) para o diretório que criou. Por exemplo:
git clone https://github.com/spring-guides/gs-spring-boot-docker.git
Mude o diretório para o projeto concluído. Por exemplo:
cd gs-spring-boot-docker/complete
Crie o ficheiro JAR com recurso ao Maven. Por exemplo:
mvn package
Uma vez criada a aplicação Web, altere o diretório para o diretório
target
, onde o ficheiro JAR está localizado, e inicie a aplicação Web. Por exemplo:cd target java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80
Teste a aplicação Web ao navegar localmente para a mesma com um browser. Por exemplo, se tiver o comando curl disponível e tiver configurado o servidor Tomcat para funcionar na porta 80:
curl http://localhost
Você verá a seguinte mensagem exibida: Hello Docker World
Criar um registo do Azure Container Registry e utilizá-lo como um Registo Privado do Docker
Os passos seguintes explicam como utilizar o portal do Azure para criar um registo do Azure Container Registry.
Nota
Se quiser utilizar a CLI do Azure em vez do portal, siga os passos em Criar um registo de contentor privado do Docker com a CLI 2.0 do Azure.
Aceda ao portal do Azure e inicie sessão.
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 para Novo, selecione Contêineres e selecione Registro de Contêiner do Azure.
Quando for apresentada a página Criar registo de contentor, introduza o Nome do registo, a Subscrição, o Grupo de recursos e a Localização. Depois, selecione Criar.
Selecione Teclas de acesso em Configurações e ative a opção Ativado atrás do usuário Admin.
Configurar o Maven para criar uma imagem no seu Registro de Contêiner do Azure
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.
Atualize a coleção
<properties>
no ficheiro pom.xml com a versão mais recente do jib-maven-plugin e o valor do servidor de início de sessão, e aceda às definições do Azure Container Registry da 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>
Adicione o jib-maven-plugin à coleção
<plugins>
no ficheiro pom.xml. Este exemplo usa a versão 3.2.0.Especifique a imagem de base em
<from>/<image>
, neste casomcr.microsoft.com/openjdk/jdk:11-ubuntu
. Especifique o nome da imagem final a criar a partir da base em<to>/<image>
.A autenticação
{docker.image.prefix}
é o Servidor de início de sessão na página de registo anteriormente apresentada. O{project.artifactId}
é o nome e o número da versão do ficheiro 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>
Navegue para o diretório de projeto concluído da sua aplicação Spring Boot, execute o seguinte comando para recriar a aplicação e emita o contentor para o seu registo do Azure Container Registry:
az acr login --name wingtiptoysregistry && mvn compile jib:build
Nota
- 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 uma aplicação Web no Linux no Serviço de Aplicações do Azure ao utilizar a sua imagem de contentor
Aceda ao portal do Azure e inicie sessão.
Clique no ícone de menu para Criar um recurso, selecione Computação e, em seguida, selecione Aplicativo Web.
Quando for apresentada a Aplicação Web no Linux, introduza as seguintes informações:
Selecione a sua Subscrição na lista pendente.
Selecione um Grupo de Recursos existente ou especifique um nome para criar um novo grupo de recursos.
Introduza um nome exclusivo para o Nome da aplicação. Por exemplo: "wingtiptoyslinux"
Especifique
Docker Container
para Publicar.Selecione Linux como o Sistema Operativo.
Selecione Região.
Aceite o Plano Linux e escolha um Plano do Serviço de Aplicativo existente ou selecione Criar novo para criar um novo plano do Serviço de Aplicativo.
Clique em Avançar: Docker.
Na página Aplicação Web, selecione Docker e introduza as seguintes informações:
Selecione Contentor Ú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 start up
Depois de inserir todas as informações acima, selecione Revisar + criar.
- Selecione Rever + criar.
Reveja as informações e selecione Criar.
Quando a implementação for concluída, selecione Ir para recurso. A página de implementação apresenta o URL para aceder à aplicação.
Nota
O Azure irá mapear automaticamente os pedidos de Internet para o servidor Tomcat incorporado em execução na porta 80. No entanto, se tiver configurado o seu servidor Tomcat incorporado para funcionar na porta 8080 ou numa porta personalizada, terá de adicionar uma variável de ambiente à aplicação Web que define a porta do servidor Tomcat incorporado. Para fazê-lo, siga os seguintes passos:
Aceda ao portal do Azure e inicie sessão.
Selecione o ícone para Aplicativos Web e selecione seu aplicativo na página Serviços de Aplicativo.
Selecione Configuração no painel de navegação esquerdo.
Na secção Definições da aplicação, adicione uma nova definição chamada WEBSITES_PORT e introduza o número de porta personalizada para o valor.
Selecione OK. Em seguida, selecione Guardar.
Clean up resources (Limpar recursos)
Utilize o portal do Azure para eliminar os recursos criados neste artigo que deixaram de ser necessários para evitar custos inesperados.
Próximos passos
Para saber mais sobre o Spring e o Azure, avance para o centro de documentação relativa ao Spring no Azure.
Consulte também
Para obter mais informações sobre como utilizar as aplicações Spring Boot no Azure, veja os artigos seguintes:
- Deploy a Spring Boot Application on a Kubernetes Cluster in the Azure Container Service (Implementar uma Aplicação Spring Boot num Cluster do Kubernetes no Azure Container Service)
Para obter mais informações sobre a utilização do Azure com Java, veja Azure para Programadores de Java e Working with Azure DevOps and Java (Trabalhar com o Azure DevOps e Java).
Para obter mais detalhes sobre o projeto de exemplo "Spring Boot no Docker", veja Introdução ao Spring Boot no Docker.
Para obter ajuda para começar a criar as suas próprias aplicações do Spring Boot, veja o Spring Initializr em https://start.spring.io/.
Para obter mais informações para começar a criar uma aplicação Spring Boot simples, veja o Spring Initializr em https://start.spring.io/.
Para obter mais exemplos sobre como utilizar imagens personalizadas do Docker com o Azure, veja Utilizar uma imagem personalizada do Docker para as Aplicações Web do Azure no Linux.