Delen via


Een Spring Boot-toepassing implementeren in Linux in Azure App Service

In deze zelfstudie wordt uitgelegd hoe u Docker- gebruikt om uw Spring Boot--toepassing in een container te zetten en uw eigen Docker-installatiekopie te implementeren op een Linux-host in de Azure App Service-.

Voorwaarden

Als u de stappen in deze zelfstudie wilt voltooien, hebt u de volgende vereisten nodig:

Notitie

Vanwege de virtualisatievereisten van deze zelfstudie kunt u de stappen in dit artikel niet volgen op een virtuele machine; u moet een fysieke computer gebruiken waarvoor virtualisatiefuncties zijn ingeschakeld.

De 'Getting Started'-webapp voor Spring Boot op Docker maken.

In de volgende stappen worden de stappen beschreven die nodig zijn om een eenvoudige Spring Boot-webtoepassing te maken en deze lokaal te testen.

  1. Open een opdrachtprompt en maak een lokale map om uw toepassing op te slaan en ga naar die map; bijvoorbeeld:

    mkdir SpringBoot
    cd SpringBoot
    
  2. Kloon de Spring Boot op Docker Aan de slag voorbeeldproject in de map die u hebt gemaakt; bijvoorbeeld:

    git clone https://github.com/spring-guides/gs-spring-boot-docker.git
    
  3. Navigeer naar de map van het voltooide project; bijvoorbeeld:

    cd gs-spring-boot-docker/complete
    
  4. Bouw het JAR-bestand met behulp van Maven; bijvoorbeeld:

    mvn package
    
  5. Zodra de web-app is gemaakt, wijzigt u de map in de target map waarin het JAR-bestand zich bevindt en start u de web-app; bijvoorbeeld:

    cd target
    java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80
    
  6. Test de web-app door er lokaal naar te bladeren met behulp van een webbrowser. Als u bijvoorbeeld curl hebt en u de Tomcat-server hebt geconfigureerd voor uitvoering op poort 80:

    curl http://localhost
    
  7. Het volgende bericht wordt weergegeven: Hello Docker World

    Voorbeeld-app lokaal bekijken

Een Azure Container Registry maken voor gebruik als een privé-Docker-register

In de volgende stappen wordt stapsgewijs uitgelegd hoe u Azure Portal gebruikt om een Azure Container Registry te maken.

Notitie

Als u de Azure CLI wilt gebruiken in plaats van Azure Portal, volgt u de stappen in Een persoonlijk Docker-containerregister maken met behulp van de Azure CLI 2.0.

  1. Blader naar de Azure Portal en meld u aan.

    Zodra u bent aangemeld bij uw account op de Azure Portal, volgt u de stappen in het Een privé-Docker-containerregister maken met behulp van de Azure Portal-artikel, die ter verduidelijking in de volgende stappen worden samengevat.

  2. Klik op het menupictogram voor Nieuwe, selecteer Containersen selecteer daarna Azure Container Registry.

    Een nieuwe Azure Container Registry- maken

  3. Wanneer de pagina Containerregister maken wordt weergegeven, voert u registernaam in, abonnement, resourcegroepen locatie. Selecteer vervolgens maken.

    Azure Container Registry-instellingen configureren

  4. Selecteer toegangssleutels onder Instellingen en schakel de ingeschakelde schakel in achter de admin-gebruiker.

    gebruikersinterface voor beheerders inschakelen in Azure Portal

Maven configureren voor het bouwen van een image in uw Azure Container Registry

  1. Navigeer naar de voltooide projectmap voor uw Spring Boot-toepassing (bijvoorbeeld: C:\SpringBoot\gs-spring-boot-docker\complete of /users/robert/SpringBoot/gs-spring-boot-docker/complete) en open het pom.xml bestand met een teksteditor.

  2. Werk de <properties>-verzameling in het pom.xml-bestand bij met de nieuwste versie van jib-maven-plugin, aanmeldingsserverwaarde en toegangsinstellingen voor uw Azure Container Registry uit de vorige sectie van deze zelfstudie. Bijvoorbeeld:

    <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. Voeg jib-maven-plugin toe aan de <plugins>-collectie in het pom.xml-bestand. In dit voorbeeld wordt versie 3.2.0 gebruikt.

    Specificeer de basisafbeelding bij <from>/<image>, hier mcr.microsoft.com/openjdk/jdk:11-ubuntu. Geef de naam op van de uiteindelijke image die moet worden gebouwd op basis van de basis in <to>/<image>.

    Verificatie {docker.image.prefix} is de inlogserver op de registratiepagina die eerder is weergegeven. De {project.artifactId} is de naam en het versienummer van het JAR-bestand uit de eerste Maven-build van het project.

    <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. Navigeer naar de voltooide projectmap voor uw Spring Boot-toepassing en voer de volgende opdracht uit om de toepassing opnieuw te bouwen en de container naar uw Azure Container Registry te pushen:

    az acr login --name wingtiptoysregistry && mvn compile jib:build
    

Notitie

  1. Met de opdracht az acr login ... probeert u aan te melden bij Azure Container Registry, anders moet u <username> en <password> opgeven voor jib-maven-plugin. Zie Authentication Methods in jib.
  2. Wanneer u Jib gebruikt om uw afbeelding naar Azure Container Registry te pushen, gebruikt de afbeelding niet de Dockerfile. Zie dit document voor meer informatie.

Een web-app maken op Linux in Azure App Service met behulp van uw container image

  1. Blader naar de Azure Portal en meld u aan.

  2. Klik op het menupictogram voor Een resource maken, selecteer Compute-en selecteer vervolgens Web App-.

    Een nieuwe web-app maken in Azure Portal

  3. Wanneer de pagina Web App op Linux wordt weergegeven, voert u de volgende gegevens in:

    • Kies uw -abonnement in de vervolgkeuzelijst.

    • Kies een bestaande resourcegroepof geef een naam op om een nieuwe resourcegroep te maken.

    • Voer een unieke naam in voor de App-naam; bijvoorbeeld: wingtiptoyslinux

    • Geef Docker Container op voor publiceer.

    • Kies Linux-voor het veld Besturingssysteem.

    • Selecteer regio.

    • Accepteer Linux-abonnement en kies een bestaand App Service-planof selecteer Nieuwe maken om een nieuw App Service-plan te maken.

    • Klik op Volgende: Docker.

    Klik op de knop Volgende: Docker om door te gaan.

    Op de Web App-pagina selecteer Dockeren voer de volgende gegevens in:

    • Selecteer enkele container.

    • Registry: Kies uw container, bijvoorbeeld: wingtiptoysregistry.

    • Image: Selecteer de image die u eerder hebt gemaakt, bijvoorbeeld: spring-boot-docker.

    • Tag: kies de tag voor de afbeelding, bijvoorbeeld: meest recente.

    • opstartopdracht: laat deze leeg omdat het imagebestand al de opstartopdracht heeft

    Nadat u alle bovenstaande gegevens hebt ingevoerd, selecteert u Controleren enmaken.

    Voltooien door Beoordelen en maken te selecteren.

    • Selecteer Beoordelen enmaken.

Controleer de informatie en selecteer maken.

Wanneer de implementatie is voltooid, selecteert u Ga naar de resource. Op de implementatiepagina wordt de URL weergegeven voor toegang tot de toepassing.

URL van de implementatie ophalen

Notitie

Azure wijst automatisch internetaanvragen toe aan de ingesloten Tomcat-server die wordt uitgevoerd op de poort - 80. Als u de ingesloten Tomcat-server echter hebt geconfigureerd voor uitvoering op poort 8080 of aangepaste poort, moet u een omgevingsvariabele toevoegen aan uw web-app die de poort voor uw ingesloten Tomcat-server definieert. Gebruik hiervoor de volgende stappen:

  1. Blader naar de Azure Portal en meld u aan.

  2. Selecteer het pictogram voor Web Appsen selecteer uw app op de pagina App Services.

  3. Selecteer Configuratie in het linker navigatiedeelvenster.

  4. Voeg in de sectie Toepassingsinstellingen een nieuwe instelling toe met de naam WEBSITES_PORT en voer uw aangepaste poortnummer in voor de waarde.

  5. Selecteer OK-. Selecteer vervolgens Opslaan.

een aangepast poortnummer opslaan in Azure Portal

Resources opschonen

Wanneer u deze niet meer nodig hebt, gebruikt u de Azure Portal om de resources die in dit artikel zijn gemaakt, te verwijderen om onverwachte kosten te voorkomen.

Volgende stappen

Ga naar het Documentatiecentrum van Spring op Azure voor meer informatie over Spring en Azure.

Zie ook

Zie de volgende artikelen voor meer informatie over het gebruik van Spring Boot-toepassingen in Azure:

Zie de Azure voor Java-ontwikkelaars en de Werken met Azure DevOps en Javavoor meer informatie over het gebruik van Azure met Java.

Zie Spring Boot op Docker Getting Startedvoor meer informatie over het Spring Boot-voorbeeldproject in Docker.

Zie de Spring Initializr op https://start.spring.io/voor hulp om te beginnen met uw eigen Spring Boot-toepassingen.

Voor meer informatie over het beginnen met het maken van een eenvoudige Spring Boot-toepassing, zie de Spring Initializr op https://start.spring.io/.

Zie Een aangepaste Docker-installatiekopie gebruiken voor Azure Web App in Linuxvoor aanvullende voorbeelden voor het gebruik van aangepaste Docker-installatiekopieën met Azure.