Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa esercitazione illustra come usare Docker per inserire in contenitori l'applicazione Spring Boot e distribuire un'immagine Docker personalizzata in un host Linux nel Servizio app di Azure.
Prerequisiti
Per completare i passaggi di questa esercitazione, sono necessari i prerequisiti seguenti:
- Sottoscrizione Azure. Se non si ha già un abbonamento Azure, 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.
Aprire un prompt dei comandi e creare una directory locale per contenere l'applicazione e passare a tale directory; ad esempio:
mkdir SpringBoot cd SpringBootClonare il progetto di esempio Spring Boot su Docker Getting Started nella directory creata; per esempio:
git clone https://github.com/spring-guides/gs-spring-boot-docker.gitPassare alla directory del progetto completato; per esempio:
cd gs-spring-boot-docker/completeCompilare il file JAR usando Maven; Per esempio:
mvn packageDopo aver creato l'applicazione web, passare alla directory
targetin cui si trova il file JAR e avviare l'applicazione web; ad esempio:cd target java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80Testare 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://localhostViene 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 la procedura descritta nell'articolo Creare un registro contenitori Docker privato usando il portale di Azure. La procedura seguente parafrasa tali istruzioni per motivi di espedienza.
Selezionare l'icona del menu per Nuovo, selezionare Contenitori e quindi selezionare Registro Azure Container.
Quando viene visualizzata la pagina Crea registro contenitori , immettere Nome registro, Sottoscrizione, Gruppo di risorse e Posizione. Selezionare quindi Crea.
Selezionare Chiavi di accesso in Impostazioni e attivare l'opzione Abilitato per l'utente amministratore.
Configurare Maven per creare l'immagine nel Registro di Azure per i Contenitori
Passare alla directory del progetto completata per l'applicazione Spring Boot, ad esempio C:\SpringBoot\gs-spring-boot-docker\complete o /users/robert/SpringBoot/gs-spring-boot-docker/complete , quindi aprire il filepom.xml con un editor di testo.
Aggiorna la raccolta
<properties>nel file pom.xml con la versione più recente dijib-maven-plugin, il valore del server di accesso e le impostazioni di accesso del tuo Registro Azure Container dalla sezione precedente di questa esercitazione. 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-pluginalla<plugins>collezione 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. Specificare il nome dell'immagine finale da compilare dalla base in<to>/<image>.Autenticazione
{docker.image.prefix}è il server di accesso nella pagina del registro mostrata 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>Vai alla directory del progetto completato della tua applicazione Spring Boot ed esegui il comando seguente per ricompilare l'applicazione ed eseguire il push del contenitore in Registro Azure Container:
az acr login --name wingtiptoysregistry && mvn compile jib:build
Nota
Il comando az acr login ... tenta di accedere a Registro Azure Container. In caso contrario, è necessario specificare <username> e <password> per jib-maven-plugin. Per altre informazioni, vedere Metodi di autenticazione in jib.
Quando si usa Jib per eseguire il push dell'immagine nel Registro Azure Container, l'immagine non usa il Dockerfile. Per altre informazioni, vedi questo articolo.
Creare un'app Web in esecuzione in Linux in Servizio app di Azure usando la propria immagine del contenitore
Vai al portale di Azure ed esegui l'accesso.
Selezionare l'icona del menu per Crea una risorsa, selezionare Calcolo e quindi selezionare App Web.
Quando viene visualizzata la pagina App Web in Linux , immettere le informazioni seguenti:
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 Containerper 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.
Selezionare 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: mantenere vuoto perché l'immagine ha già il comando di avvio.
Dopo aver immesso tutte le informazioni precedenti, selezionare 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 indirizza automaticamente le richieste provenienti da Internet al server Tomcat incorporato in esecuzione sulla porta 80. Tuttavia, se si configura il server Tomcat incorporato per l'esecuzione sulla porta 8080 o su una porta personalizzata, è necessario aggiungere una variabile di ambiente all'app Web che definisce la porta per il server Tomcat incorporato. Per aggiungere la variabile di ambiente, seguire questa procedura:
Vai al portale di Azure ed esegui 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 le risorse non sono più necessarie, usare il portale di Azure per eliminarle. L'eliminazione delle risorse consente di 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 di come usare immagini Docker personalizzate con Azure, vedere Uso di un'immagine Docker personalizzata per Azure'app Web in Linux.