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

In deze zelfstudie wordt gebruikgemaakt van Docker om uw Spring Boot-toepassing in een container te plaatsen en uw eigen Docker-installatiekopie te implementeren op een Linux-host in de Azure App Service.

Vereisten

U moet aan de volgende vereisten voldoen om de stappen in deze zelfstudie te kunnen uitvoeren:

Notitie

Als gevolg van de vereisten voor virtualisatie van deze zelfstudie, kunt u de stappen in dit artikel niet volgen op een virtuele machine. U moet een fysieke computer gebruiken waarop de functies voor virtualisatie zijn ingeschakeld.

De web-app Aan de slag met Spring Boot in 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, maak een lokale map voor de toepassing en ga naar die map, bijvoorbeeld:

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

    git clone https://github.com/spring-guides/gs-spring-boot-docker.git
    
  3. Ga naar de map met 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 heen te bladeren met een webbrowser. Als bijvoorbeeld over curl beschikt en u de Tomcat-server hebt geconfigureerd om te worden uitgevoerd op poort 80:

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

    Browse Sample App Locally

Een Azure Container Registry maken om als privé-Docker-register te gebruiken

In de volgende stappen wordt beschreven hoe u Azure Portal kunt gebruiken 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 privé-Docker-containerregister maken met behulp van de Azure CLI 2.0.

  1. Blader naar Azure Portal en meld u aan.

    Nadat u zich hebt aangemeld bij uw account in Azure Portal, volgt u de stappen in het Azure Portal-containerregister maken met behulp van het Azure Portal-artikel . Deze worden in de volgende stappen geparafraseerd, omwille van de expediency.

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

    Create a new Azure Container Registry

  3. Wanneer de pagina Containerregister maken wordt weergegeven, voert u Registernaam, Abonnement, Resourcegroep en Locatie in. Selecteer vervolgens Maken.

    Configure Azure Container Registry settings

  4. Selecteer Toegangssleutels onder Instellingen en schakel de schakeloptie Ingeschakeld in achter de Beheer gebruiker.

    Enable admin user UI in the Azure portal

Maven configureren voor het bouwen van installatiekopieën naar 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 verzameling <properties> in het bestand pom.xml bij met de nieuwste versie van jib-maven-plugin, de aanmeldingsserverwaarde en de toegangsinstellingen voor uw Azure Container Registry uit de vorige sectie van deze zelfstudie. Voorbeeld:

    <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>-verzameling in het bestand pom.xml. In dit voorbeeld wordt versie 3.2.0 gebruikt.

    Geef bij <from>/<image> de basisinstallatiekopie op (hier is dat mcr.microsoft.com/openjdk/jdk:11-ubuntu). Geef de naam op van de uiteindelijke installatiekopie die moet worden opgebouwd op basis van <to>/<image>.

    Verificatie {docker.image.prefix} is de Aanmeldingsserver op de eerder vermelde registerpagina. De {project.artifactId} is de naam en het versienummer van het JAR-bestand van 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 map met het voltooide project 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 ... wordt geprobeerd u aan te melden bij Azure Container Registry, anders moet u de verificatiemethoden in jib opgeven <username> en <password> voor jib-maven-plugin.
  2. Wanneer u Jib gebruikt om uw installatiekopieën naar Azure Container Registry te pushen, gebruikt de installatiekopieën het Dockerfile niet. Zie dit document voor meer informatie.

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

  1. Blader naar Azure Portal en meld u aan.

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

    Create a new web app in the Azure portal

  3. Voer de volgende gegevens in wanneer de pagina Web-app in Linux wordt weergegeven:

    • Kies uw abonnement in de vervolgkeuzelijst.

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

    • Voer een unieke naam in voor de naam van de app; bijvoorbeeld: wingtiptoyslinux

    • Geef voor Docker Container de optie Publiceren op.

    • Kies Linux als het besturingssysteem.

    • Selecteer Regio.

    • Accepteer het Linux-plan en kies een bestaand App Service-plan of selecteer Nieuw maken om een nieuw App Service-plan te maken.

    • Klik op Volgende: Docker.

    Click the Next: Docker button to proceed.

    Selecteer op de pagina Web-app de optie Docker en voer de volgende gegevens in:

    • Selecteer Enkele container.

    • Register: Kies uw container, bijvoorbeeld: "wingtiptoysregistry"

    • Afbeelding: Selecteer de installatiekopie die u eerder hebt gemaakt, bijvoorbeeld: 'spring-boot-docker'

    • Tag: Kies de tag voor de afbeelding, bijvoorbeeld: 'latest'

    • Opstartopdracht: Laat deze leeg omdat de installatiekopieën al de opstartopdracht hebben

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

    Finish by selecting Review + Create.

    • Selecteer Controleren + maken.

Controleer de gegevens en selecteer Maken.

Selecteer Naar resource gaan zodra de implementatie is voltooid. Op de implementatiepagina wordt de URL voor toegang tot de toepassing weergegeven.

Get URL of deployment

Notitie

Azure wijst internetaanvragen automatisch toe aan de ingesloten Tomcat-server die wordt uitgevoerd op poort -80. Als u de ingesloten Tomcat-server echter hebt geconfigureerd om te worden uitgevoerd op poort - 8080 een aangepaste poort, moet u een omgevingsvariabele toevoegen aan uw web-app waarmee de poort voor de ingesloten Tomcat-server wordt gedefinieerd. Volg hiervoor de volgende stappen:

  1. Blader naar Azure Portal en meld u aan.

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

  3. Selecteer Configuratie in het linkernavigatiedeelvenster.

  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.

Saving a custom port number in the Azure portal

Resources opschonen

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

Volgende stappen

Voor meer informatie over Spring en Azure gaat u door naar het documentatiecentrum van Spring op Azure.

Zie ook

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

Voor meer informatie over het gebruik van Azure met Java raadpleegt u de artikelen Azure voor Java-ontwikkelaars en de Werken met Azure DevOps en Java.

Zie Aan de slag met Spring Boot in Docker voor meer informatie over het voorbeeldproject Spring Boot in Docker.

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

Zie de Spring Initializr op https://start.spring.io/ voor meer informatie om aan de slag te gaan met het maken van een eenvoudige Spring Boot-toepassing.

Zie Een aangepaste Docker-installatiekopie gebruiken voor Azure-web-apps in Linux voor meer voorbeelden over het gebruik van aangepaste Docker-installatiekopieën met Azure.