Dela via


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:

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.

  1. Ö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
    
  2. 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
    
  3. Ändra katalogen till det slutförda projektet. till exempel:

    cd gs-spring-boot-docker/complete
    
  4. Skapa JAR-filen med Maven; till exempel:

    mvn package
    
  5. 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
    
  6. 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
    
  7. Du bör se följande meddelande: Hello Docker World

    Bläddra bland exempelappen lokalt

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-.

  1. 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.

  2. Klicka på menyikonen för New, välj Containersoch välj sedan Azure Container Registry.

    Skapa en ny Azure Container Registry-

  3. När sidan Skapa containerregister visas anger du Registernamn, Subscription, Resource groupoch Location. Välj sedan Skapa.

    Konfigurera Azure Container Registry-inställningar

  4. Välj Åtkomstnycklar under Inställningar och aktivera Aktiverad växla bakom administratörsanvändaren.

    Aktivera användargränssnittet för administratörer i Azure-portalen

Konfigurera Maven för att skapa en avbildning i Azure Container Registry

  1. 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.

  2. 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>
    
  3. 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är mcr.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>
    
  4. 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

  1. 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.
  2. 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

  1. Bläddra till Azure-portalen och logga in.

  2. Klicka på menyikonen för Skapa en resurs, välj Computeoch välj sedan Web App.

    Skapa en ny webbapp i Azure-portalen

  3. 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.

    Klicka på knappen Nästa: Docker för att fortsätta.

    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.

    Slutför genom att välja 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.

Hämta URL för distribution

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:

  1. Bläddra till Azure-portalen och logga in.

  2. Välj ikonen för Web Appsoch välj din app på sidan App Services.

  3. Välj Konfiguration i det vänstra navigeringsfönstret.

  4. 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.

  5. Välj OK. Välj sedan Spara.

Spara ett anpassat portnummer i Azure-portalen

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 Initializrhttps://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.