Distribuera ett Spring Boot-program till Linux i Azure App Service
I den här självstudien går vi igenom hur du använder Docker- för att containerisera ditt Spring Boot--program och distribuera din egen Docker-avbildning till en Linux-värd i Azure App Service-.
Förutsättningar
För att kunna slutföra stegen i den här självstudien måste du ha följande förutsättningar:
- En Azure-prenumeration; Om du inte redan har en Azure-prenumeration kan du aktivera dina MSDN-prenumerantförmåner eller registrera dig för ett kostnadsfritt Azure-konto.
- Azure-gränssnittet (CLI) Command-Line.
- Ett Java Development Kit (JDK) som stöds. Mer information om de JDK:er som är tillgängliga för användning när du utvecklar i Azure finns i Java-support på Azure och Azure Stack.
- Apache Maven build-verktyg (version 3).
- En Git-klient.
- En Docker--klient.
Obs
På grund av virtualiseringskraven i den här självstudien kan du inte följa stegen i den här artikeln på en virtuell dator. du måste använda en fysisk dator med virtualiseringsfunktioner aktiverade.
Skapa Webbappen Spring Boot på Docker Komma igång
Följande steg går igenom de steg som krävs för att skapa ett enkelt Spring Boot-webbprogram och testa det lokalt.
Öppna en kommandotolk och skapa en lokal katalog för att lagra ditt program och ändra till den katalogen. till exempel:
mkdir SpringBoot cd SpringBoot
Klona Spring Boot på Docker Komma igång med exempelprojekt till katalogen du skapade; till exempel:
git clone https://github.com/spring-guides/gs-spring-boot-docker.git
Ändra katalogen till det slutförda projektet. till exempel:
cd gs-spring-boot-docker/complete
Skapa JAR-filen med Maven; till exempel:
mvn package
När webbappen har skapats ändrar du katalogen till den
target
katalog där JAR-filen finns och startar webbappen. till exempel:cd target java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80
Testa webbappen genom att bläddra till den lokalt med hjälp av en webbläsare. Om du till exempel har curl tillgängligt och har konfigurerat Tomcat-servern att köras på port 80:
curl http://localhost
Du bör se följande meddelande: Hello Docker World
Skapa ett Azure Container Registry som ska användas som ett privat Docker-register
Följande steg går igenom hur du använder Azure-portalen för att skapa ett Azure Container Registry.
Not
Om du vill använda Azure CLI i stället för Azure-portalen följer du stegen i Skapa ett privat Docker-containerregister med hjälp av Azure CLI 2.0-.
Bläddra till Azure-portalen och logga in.
När du har loggat in på ditt konto på Azure-portalen följer du stegen i artikeln Skapa ett privat Docker-containerregister med hjälp av Azure-portalen, som parafraseras i följande steg för att spara tid.
Klicka på menyikonen för New, välj Containersoch välj sedan Azure Container Registry.
När sidan Skapa containerregister visas anger du Registernamn, Subscription, Resource groupoch Location. Välj sedan Skapa.
Välj Åtkomstnycklar under Inställningar och aktivera Aktiverad växla bakom administratörsanvändaren.
Konfigurera Maven för att skapa en avbildning i Azure Container Registry
Gå till den slutförda projektkatalogen för ditt Spring Boot-program (till exempel: C:\SpringBoot\gs-spring-boot-docker\complete eller /users/robert/SpringBoot/gs-spring-boot-docker/complete) och öppna filen pom.xml med en textredigerare.
Uppdatera
<properties>
-samlingen i filen pom.xml med den senaste versionen av jib-maven-plugin, inloggningsserverns värde och åtkomstinställningar för Azure Container Registry från föregående avsnitt i den här handledningen. Till exempel:<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>
Lägg till jib-maven-plugin- i
<plugins>
-samlingen i filen pom.xml. I det här exemplet används version 3.2.0.Ange basavbildningen på
<from>/<image>
, härmcr.microsoft.com/openjdk/jdk:11-ubuntu
. Ange namnet på den slutliga avbildningen som ska skapas från basen i<to>/<image>
.Autentisering
{docker.image.prefix}
är inloggningsserver på registersidan som visades tidigare.{project.artifactId}
är namnet och versionsnumret för JAR-filen från den första Maven-versionen av projektet.<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>
Gå till den slutförda projektkatalogen för ditt Spring Boot-program och kör följande kommando för att återskapa programmet och skicka containern till Azure Container Registry:
az acr login --name wingtiptoysregistry && mvn compile jib:build
Not
- Kommandot
az acr login ...
försöker logga in på Azure Container Registry, annars måste du ange<username>
och<password>
för jib-maven-plugin, se autentiseringsmetoder i jib. - När du använder Jib för att skicka avbildningen till Azure Container Registry använder inte avbildningen Dockerfile. Mer information finns i det här dokumentet.
Skapa en webbapp i Linux på Azure App Service med din containeravbildning
Bläddra till Azure-portalen och logga in.
Klicka på menyikonen för Skapa en resurs, välj Computeoch välj sedan Web App.
När sidan Web App på Linux visas anger du följande information:
Välj din prenumeration i listrutan.
Välj en befintlig resursgruppeller ange ett namn för att skapa en ny resursgrupp.
Ange ett unikt namn för Appnamn; till exempel: wingtiptoyslinux
Ange
Docker Container
till Publicera.I fältet Operativsystem väljer du Linux.
Välj region.
Acceptera Linux-plan och välj en befintlig App Service-plan, eller välj Skapa ny för att skapa en ny App Service-plan.
Klicka på Nästa: Docker.
På sidan Web App väljer du Dockeroch anger följande information:
Välj enskild container.
Registry: Välj din container, till exempel: wingtiptoysregistry.
Image: Välj den bild som skapades tidigare, till exempel: spring-boot-docker.
Tag: Välj taggen för bilden, till exempel: senaste.
Startkommando: Håll det tomt eftersom avbildningen redan har startkommandot
När du har angett all ovanstående information väljer du Granska + skapa.
- Välj Granska och skapa.
Granska informationen och välj Skapa.
När distributionen är klar väljer du Gå till resurs. Distributionssidan visar URL:en för att komma åt programmet.
Notera
Azure mappar automatiskt Internetbegäranden till inbäddad Tomcat-server som körs på porten – 80. Men om du har konfigurerat den inbäddade Tomcat-servern att köras på port – 8080 eller anpassad port måste du lägga till en miljövariabel i webbappen som definierar porten för din inbäddade Tomcat-server. Använd följande steg för att göra det:
Bläddra till Azure-portalen och logga in.
Välj ikonen för Web Appsoch välj din app på sidan App Services.
Välj Konfiguration i det vänstra navigeringsfönstret.
I avsnittet Programinställningar lägger du till en ny inställning med namnet WEBSITES_PORT och anger ditt anpassade portnummer för värdet.
Välj OK. Välj sedan Spara.
Rensa resurser
När du inte längre behöver det kan du använda Azure-portalen för att ta bort resurserna som skapas i den här artikeln för att undvika oväntade avgifter.
Nästa steg
Om du vill veta mer om Spring och Azure fortsätter du till dokumentationscentret för Spring on Azure.
Se även
Mer information om hur du använder Spring Boot-program i Azure finns i följande artiklar:
Mer information om hur du använder Azure med Java finns i Azure for Java Developers och Working with Azure DevOps and Java.
Mer information om Exempelprojektet Spring Boot på Docker finns i Spring Boot på Komma igång med Docker.
Om du vill ha hjälp med att komma igång med dina egna Spring Boot-program kan du se Spring Initializr på https://start.spring.io/.
Mer information om hur du kommer igång med att skapa ett enkelt Spring Boot-program finns i Spring Initializr på https://start.spring.io/.
Ytterligare exempel för hur du använder anpassade Docker-avbildningar med Azure finns i Använda en anpassad Docker-avbildning för Azure Web App på Linux.