Distribuire un'applicazione Spring Boot in Linux nel servizio app di Azure
Questa esercitazione illustra come usare Docker per containerizzare l'applicazione Spring Boot e distribuire un'immagine Docker personalizzata su un host Linux nel servizio app di Azure.
Prerequisiti
Per completare i passaggi di questa esercitazione, è necessario disporre dei prerequisiti seguenti:
- Una sottoscrizione di Azure; Se non si ha già una sottoscrizione di Azure, è possibile attivare i vantaggi del sottoscrittore MSDN o iscriversi per ottenere un account Azure gratuito .
- Interfaccia a riga di comando (CLI)
di Azure Command-Line . - Kit di Sviluppo Java supportato (JDK). Per altre informazioni sui JDK disponibili per lo sviluppo in Azure, vedere supporto Java in Azure e Azure Stack.
- Apache Maven strumento di compilazione (Versione 3).
- Un client Git.
- Un client Docker
.
Nota
A causa dei requisiti di virtualizzazione di questa esercitazione, non è possibile seguire i passaggi descritti in questo articolo in una macchina virtuale. è necessario usare un computer fisico con funzionalità di virtualizzazione abilitate.
Creare l'app Web Introduttiva di Spring Boot in Docker
La procedura seguente illustra i passaggi necessari per creare una semplice applicazione Web Spring Boot e testarla in locale.
Apri un prompt dei comandi e crea una directory locale per contenere l'applicazione e passa a tale directory; per esempio:
mkdir SpringBoot cd SpringBoot
Clonare il Spring Boot in Docker Getting Started progetto di esempio nella directory creata; Per esempio:
git clone https://github.com/spring-guides/gs-spring-boot-docker.git
Passare alla directory del progetto completato; per esempio:
cd gs-spring-boot-docker/complete
Compilare il file JAR usando Maven; Per esempio:
mvn package
Dopo aver creato l'app web, spostarsi nella directory
target
in cui si trova il file JAR e avviare l'app web, per esempio:cd target java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80
Testare l'app web accedendo localmente utilizzando un browser web. Ad esempio, se è disponibile curl ed è stato configurato il server Tomcat per l'esecuzione sulla porta 80:
curl http://localhost
Verrà visualizzato il messaggio seguente: Hello Docker World
Creare un Registro Azure Container da usare come registro Docker privato
La procedura seguente illustra come usare il portale di Azure per creare un Registro Azure Container.
Nota
Se si vuole usare l'interfaccia della riga di comando di Azure anziché il portale di Azure, seguire la procedura descritta in Creare un registro contenitori Docker privato usando l'interfaccia della riga di comando di Azure 2.0.
Vai al portale di Azure ed esegui l'accesso.
Dopo aver eseguito l'accesso all'account nel portale di Azure, seguire i passaggi descritti nell'articolo Creare un registro contenitori Docker privato usando il portale di Azure, parafrasati nei passaggi seguenti per motivi di rapidità.
Fare clic sull'icona del menu per Nuovo, selezionare Contenitorie quindi selezionare Registro dei contenitori di Azure.
Quando viene visualizzata la pagina Crea registro dei contenitori, immettere Nome del registro, Sottoscrizione, Gruppo di risorsee Località. Selezionare quindi Crea.
Selezionare Chiavi di accesso in Impostazioni e attivare l'interruttore Abilitato dietro l'utente Admin .
Configurare Maven per creare l'immagine nel Registro di Azure per i Contenitori
Passare alla directory del progetto completato per l'applicazione Spring Boot, ad esempio C:\SpringBoot\gs-spring-boot-docker\complete o /users/robert/SpringBoot/gs-spring-boot-docker/complete, e aprire il file pom.xml con un editor di testo.
Aggiorna la raccolta di
<properties>
nel file pom.xml con la versione più recente del plugin jib-maven-plugin, il valore del server di accesso e le impostazioni di accesso per il Registro dei container Azure dalla sezione precedente di questo tutorial. Per esempio:<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>
Aggiungere jib-maven-plugin alla raccolta
<plugins>
nel file pom.xml. Questo esempio usa la versione 3.2.0.Specifica l'immagine di base in
<from>/<image>
, quimcr.microsoft.com/openjdk/jdk:11-ubuntu
. Specifica il nome dell'immagine finale da creare dalla base in<to>/<image>
.L'autenticazione
è la del server di accesso nella pagina del Registro di sistema illustrata in precedenza. Il {project.artifactId}
è il nome e il numero di versione del file JAR dalla prima build Maven del progetto.<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>
Passare alla directory del progetto completato per la tua applicazione Spring Boot e inserire il seguente comando per ricompilare l'applicazione e spingere il contenitore nel registro contenitori di Azure.
az acr login --name wingtiptoysregistry && mvn compile jib:build
Nota
- Il comando
az acr login ...
tenterà di accedere ad Azure Container Registry; altrimenti, è necessario fornire<username>
e<password>
per il plugin jib-maven, vedere Metodo di Autenticazione in jib. - Quando si usa Jib per eseguire il push dell'immagine nel Registro Azure Container, l'immagine non userà il Dockerfile. Per informazioni dettagliate, vedere questo documento.
Creare un'app Web in Linux nel servizio app di Azure usando l'immagine del contenitore
Accedi al portale di Azure e accedi.
Fare clic sull'icona del menu per Crea una risorsa, selezionare Calcoloe quindi selezionare App Web.
Quando viene visualizzata la pagina della Web App su Linux, immettere le seguenti informazioni:
Scegli il abbonamento dall'elenco a discesa.
Scegliere un gruppo di risorse esistenteoppure specificare un nome per creare un nuovo gruppo di risorse.
Immettere un nome univoco per il nome dell'app ; ad esempio: wingtiptoyslinux
Specificare
Docker Container
per Pubblica.Per il campo del sistema operativo , scegliere Linux.
Selezionare Region.
Accettare piano Linux e scegliere un piano di servizio app esistente oppure selezionare Crea nuovo per creare un nuovo piano di servizio app.
Fare clic su Avanti: Docker.
Nella pagina app Web
selezionare Docker e immettere le informazioni seguenti:Selezionare contenitore singolo.
Registro: scegli il contenitore, ad esempio wingtiptoysregistry.
Immagine: selezionare l'immagine creata in precedenza, ad esempio: spring-boot-docker.
Tag: Scegli il tag per l'immagine, per esempio: più recente.
comando di avvio: lasciare vuoto dato che l'immagine contiene già il comando di avvio
Dopo aver immesso tutte le informazioni precedenti, clicca su Rivedi e crea.
- Seleziona Rivedi e crea.
Esaminare le informazioni e selezionare Crea.
Al termine della distribuzione, selezionare Vai alla risorsa. Nella pagina di distribuzione viene visualizzato l'URL per accedere all'applicazione.
Nota
Azure assocerà automaticamente le richieste Internet al server Tomcat incorporato in esecuzione sulla porta 80. Tuttavia, se il server Tomcat incorporato è stato configurato per l'esecuzione sulla porta 8080 o sulla porta personalizzata, è necessario aggiungere una variabile di ambiente all'app Web che definisce la porta per il server Tomcat incorporato. A tale scopo, seguire questa procedura:
Passare al portale di Azure ed eseguire l'accesso.
Seleziona l'icona per App Webe seleziona l'app dalla pagina Servizi App.
Selezionare Configurazione nel pannello di navigazione a sinistra.
Nella sezione delle impostazioni dell'applicazione, aggiungere una nuova impostazione denominata WEBSITES_PORT e immettere il numero di porta personalizzato come valore.
Selezionare OK. Selezionare quindi Salva.
Pulire le risorse
Quando non è più necessario, usare il portale di Azure per eliminare le risorse create in questo articolo per evitare addebiti imprevisti.
Passaggi successivi
Per altre informazioni su Spring e Azure, passare al Centro documentazione di Spring in Azure.
Vedere anche
Per altre informazioni sull'uso di applicazioni Spring Boot in Azure, vedere gli articoli seguenti:
Per altre informazioni sull'uso di Azure con Java, vedere Azure for Java Developers e Lavorare con Azure DevOps e Java.
Per altri dettagli sul progetto di esempio Spring Boot in Docker, vedere Spring Boot in Introduzione a Docker.
Per informazioni su come iniziare a usare le proprie applicazioni Spring Boot, consulta Spring Initializr all'indirizzo https://start.spring.io/.
Per altre informazioni su come iniziare a creare una semplice applicazione Spring Boot, vedere Spring Initializr all'indirizzo https://start.spring.io/.
Per altri esempi per l'uso di immagini Docker personalizzate con Azure, vedere Uso di un'immagine Docker personalizzata per App Web di Azure in Linux.