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

Deze zelfstudie laat zien 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

Voor het voltooien van de stappen in deze zelfstudie 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: Hallo Docker World

    Voorbeeld-app lokaal bekijken

Een Azure Container Registry maken om te gebruiken 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.

    Nadat u zich hebt aangemeld bij uw account in de Azure-portal, volgt u de stappen in het privé-Docker-containerregister maken met behulp van het Azure portalartikel. In de volgende stappen worden deze instructies geparafraseerd omwille van de expediency.

  2. Selecteer het menupictogram voor Nieuw, selecteer Containers en selecteer vervolgens Azure Container Registry.

    Een nieuwe Azure Container Registry- maken

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

    Azure Container Registry-instellingen configureren

  4. Selecteer Toegangssleutels onder Instellingen en schakel de schakeloptie Ingeschakeld in voor de gebruiker Beheerder.

    gebruikersinterface voor beheerders inschakelen in Azure Portal

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

  1. Ga 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, de waarde van de aanmeldingsserver en de 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 toe jib-maven-plugin aan de <plugins> verzameling 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 definitieve image die u op basis van de basis in <to>/<image> wilt bouwen.

    Authenticatie {docker.image.prefix} is de aanmeldingsserver op de eerder weergegeven registerpagina. 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. Ga 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

De opdracht az acr login ... probeert u aan te melden bij Azure Container Registry. Anders moet u opgeven <username> en <password> voor jib-maven-plugin. Zie Verificatiemethoden in jib voor meer informatie.

Wanneer u Jib gebruikt om uw containerinstallatiekopie naar de Azure Container Registry te pushen, maakt de installatiekopie geen gebruik van het Dockerfile. Zie dit artikel voor meer informatie.

Een web-app maken in Linux op Azure App Service met behulp van uw containerinstallatiekopieën

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

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

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

    • Opstartcommando: Laat dit leeg, omdat de image het opstartcommando al bevat.

    Nadat u alle voorgaande gegevens hebt ingevoerd, selecteert u Beoordelen en maken.

    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 resource. Op de implementatiepagina wordt de URL weergegeven voor toegang tot de toepassing.

URL van de implementatie ophalen

Notitie

Azure wijst internetverzoeken automatisch toe aan de ingebouwde Tomcat-server die op poort 80 wordt uitgevoerd. Als u de ingesloten Tomcat-server echter zo configureert dat deze wordt uitgevoerd op poort 8080 of een aangepaste poort, moet u een omgevingsvariabele toevoegen aan uw web-app die de poort voor uw ingesloten Tomcat-server definieert. Gebruik de volgende stappen om de omgevingsvariabele toe te voegen:

  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 de resources niet meer nodig hebt, gebruikt u de Azure-portal om ze te verwijderen. Als u de resources verwijdert, kunt u onverwachte kosten 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 op Linux voor meer voorbeelden van het gebruik van aangepaste Docker-installatiekopieën met Azure.