Udostępnij za pośrednictwem


Wdrażanie aplikacji Spring Boot w systemie Linux w usłudze Azure App Service

W tym samouczku przedstawiono sposób użycia docker w celu konteneryzowania aplikacji Spring Boot i wdrażania własnego obrazu platformy Docker na hoście platformy Linux w usłudze Azure App Service.

Warunki wstępne

Aby wykonać kroki opisane w tym samouczku, musisz mieć następujące wymagania wstępne:

  • Subskrypcja platformy Azure; Jeśli nie masz jeszcze subskrypcji platformy Azure, możesz aktywować korzyści dla subskrybentów MSDN lub zarejestrować się w celu uzyskania bezpłatnego konta platformy Azure .
  • Interfejs Azure (CLI) Command-Line.
  • Obsługiwane środowisko Java Development Kit (JDK). Aby uzyskać więcej informacji na temat zestawów JDK dostępnych do użycia podczas tworzenia aplikacji na platformie Azure, zobacz obsługa języka Java na platformie Azure i w usłudze Azure Stack.
  • Apache Maven narzędzie do kompilacji (wersja 3).
  • Klient Git.
  • Klient Docker .

Notatka

Ze względu na wymagania dotyczące wirtualizacji tego samouczka nie można wykonać kroków opisanych w tym artykule na maszynie wirtualnej; Należy użyć komputera fizycznego z włączonymi funkcjami wirtualizacji.

Tworzenie aplikacji internetowej Spring Boot na platformie Docker — wprowadzenie

W poniższych krokach przedstawiono kroki wymagane do utworzenia prostej aplikacji internetowej Spring Boot i przetestowania jej lokalnie.

  1. Otwórz wiersz polecenia i utwórz katalog lokalny do przechowywania aplikacji, a następnie przejdź do tego katalogu; na przykład:

    mkdir SpringBoot
    cd SpringBoot
    
  2. Sklonuj przykładowy projekt Spring Boot na platformie Docker Getting Started do utworzonego katalogu; na przykład:

    git clone https://github.com/spring-guides/gs-spring-boot-docker.git
    
  3. Zmień folder na ukończony projekt, na przykład:

    cd gs-spring-boot-docker/complete
    
  4. Skompiluj plik JAR przy użyciu narzędzia Maven; na przykład:

    mvn package
    
  5. Po utworzeniu aplikacji internetowej zmień katalog na katalog target, w którym znajduje się plik JAR, i uruchom aplikację internetową; na przykład:

    cd target
    java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80
    
  6. Przetestuj aplikację internetową, przechodząc do niej lokalnie przy użyciu przeglądarki internetowej. Jeśli na przykład masz dostępny program curl i skonfigurowano serwer Tomcat do uruchamiania na porcie 80:

    curl http://localhost
    
  7. Powinien zostać wyświetlony następujący komunikat: Hello Docker World

    przeglądaj przykładową aplikację lokalnie

Tworzenie rejestru kontenerów platformy Azure do użycia jako prywatnego rejestru platformy Docker

W poniższych krokach przedstawiono sposób tworzenia usługi Azure Container Registry przy użyciu witryny Azure Portal.

Notatka

Jeśli chcesz użyć interfejsu wiersza polecenia platformy Azure zamiast witryny Azure Portal, wykonaj kroki opisane w Tworzenie prywatnego rejestru kontenerów platformy Docker przy użyciu interfejsu wiersza polecenia platformy Azure 2.0.

  1. Przejdź do witryny Azure Portal i zaloguj się.

    Po zalogowaniu się do konta na portalu Azure, wykonaj kroki opisane w artykule Tworzenie prywatnego rejestru kontenerów Docker przy użyciu portalu Azure, które są sparafrazowane w poniższych krokach, aby przyspieszyć.

  2. Kliknij ikonę menu Nowy, wybierz pozycję Containers, a następnie wybierz pozycję Azure Container Registry.

    Tworzenie nowej usługi Azure Container Registry

  3. Kiedy zostanie wyświetlona strona tworzenie rejestru kontenerów, wprowadź nazwę rejestru, subskrypcję, grupę zasobówi lokalizację. Następnie wybierz pozycję Utwórz.

    Konfigurowanie ustawień usługi Azure Container Registry

  4. Wybierz pozycję Klucze dostępu w obszarze Ustawienia i włącz przełącznik włączony za administratorem.

    Włączanie interfejsu użytkownika administratora w witrynie Azure Portal

Skonfiguruj Maven do tworzenia obrazu w Azure Container Registry

  1. Przejdź do ukończonego katalogu projektu aplikacji Spring Boot (na przykład: C:\SpringBoot\gs-spring-boot-docker\complete lub /users/robert/SpringBoot/gs-spring-boot-docker/complete), a następnie otwórz plik pom.xml za pomocą edytora tekstów.

  2. Zaktualizuj kolekcję <properties> w pliku pom.xml przy użyciu najbardziej aktualnej wersji jib-maven-plugin, wartości serwera logowania i ustawień dostępu do usługi Azure Container Registry z poprzedniej części tego samouczka. Na przykład:

    <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. Dodaj jib-maven-plugin do kolekcji <plugins> w plikupom.xml. W tym przykładzie użyto wersji 3.2.0.

    Określ obraz podstawowy w <from>/<image>, tutaj mcr.microsoft.com/openjdk/jdk:11-ubuntu. Określ nazwę obrazu końcowego, który ma zostać skompilowany z bazy w <to>/<image>.

    Uwierzytelnianie {docker.image.prefix} to serwer logowania na stronie rejestru wyświetlonej wcześniej. {project.artifactId} to nazwa i numer wersji pliku JAR z pierwszej kompilacji programu Maven projektu.

    <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. Przejdź do ukończonego katalogu projektu aplikacji Spring Boot i uruchom następujące polecenie, aby ponownie skompilować aplikację i wypchnąć kontener do usługi Azure Container Registry:

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

Notatka

  1. Polecenie az acr login ... spróbuje zalogować się do usługi Azure Container Registry. W przeciwnym razie należy podać <username> i <password> dla wtyczki jib-maven-plugin, zobacz Metody uwierzytelniania w jib.
  2. Gdy używasz programu Jib do wypychania obrazu do rejestru Azure Container Registry, obraz nie będzie używał pliku Dockerfile. Aby uzyskać szczegółowe informacje, zobacz ten dokument.

Tworzenie aplikacji internetowej w systemie Linux w usłudze Azure App Service przy użyciu obrazu kontenera

  1. Przejdź do witryny Azure Portal i zaloguj się.

  2. Kliknij ikonę menu Utwórz zasób, wybierz pozycję Compute, a następnie wybierz pozycję Web App.

    Tworzenie nowej aplikacji internetowej w witrynie Azure Portal

  3. Po wyświetleniu strony Web App on Linux wprowadź następujące informacje:

    • Wybierz swoją subskrypcję z listy rozwijanej.

    • Wybierz istniejącą grupę zasobów lub określ nazwę, aby utworzyć nową grupę zasobów.

    • Wprowadź unikatową nazwę Nazwa aplikacji; na przykład: wingtiptoyslinux

    • Określ Docker Container, aby opublikować.

    • W polu systemu operacyjnego wybierz Linux.

    • Wybierz Region.

    • Zaakceptuj plan systemu Linux i wybierz istniejący plan usługi App Servicelub wybierz pozycję Utwórz nowy, aby utworzyć nowy plan usługi App Service.

    • Kliknij przycisk Dalej: Docker.

    Kliknij przycisk Dalej: Platforma Docker, aby kontynuować.

    Na stronie Web App wybierz pozycję Dockeri wprowadź następujące informacje:

    • Wybierz pojedynczy kontener .

    • Registry: wybierz kontener, na przykład: wingtiptoysregistry.

    • Image: Wybierz utworzony wcześniej obraz, na przykład: spring-boot-docker.

    • Tag: Wybierz tag obrazu, na przykład: najnowsze.

    • komenda startu: pozostaw to pole puste, ponieważ obraz już zawiera komendę startu

    Po wprowadzeniu wszystkich powyższych informacji wybierz pozycję Przejrzyj + utwórz.

    Zakończ, wybierając pozycję Przejrzyj i utwórz.

    • Wybierz Przejrzyj i utwórz.

Przejrzyj informacje i wybierz opcję Utwórz.

Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu. Na stronie wdrażania zostanie wyświetlony adres URL umożliwiający uzyskanie dostępu do aplikacji.

Pobierz adres URL wdrożenia

Uwaga

Platforma Azure automatycznie mapuje żądania internetowe na osadzony serwer Tomcat uruchomiony na porcie — 80. Jeśli jednak skonfigurowano osadzony serwer Tomcat do uruchamiania na porcie — 8080 lub niestandardowym, musisz dodać zmienną środowiskową do aplikacji internetowej, która definiuje port dla osadzonego serwera Tomcat. W tym celu wykonaj następujące czynności:

  1. Przejdź do witryny Azure Portal i zaloguj się.

  2. Wybierz ikonę Web Appsi wybierz aplikację na stronie App Services.

  3. Wybierz pozycję Konfiguracja w okienku nawigacji po lewej stronie.

  4. W sekcji Ustawienia aplikacji dodaj nowe ustawienie o nazwie WEBSITES_PORT i wprowadź niestandardowy numer portu dla wartości.

  5. Wybierz pozycję OK. Następnie wybierz pozycję Zapisz.

pl-PL: Zapisywanie niestandardowego numeru portu w portalu Azure

Czyszczenie zasobów

Gdy zasoby utworzone w tym artykule nie będą już potrzebne, użyj Azure Portal, aby uniknąć nieoczekiwanych opłat.

Następne kroki

Aby dowiedzieć się więcej na temat platformy Spring i platformy Azure, przejdź do Centrum dokumentacji platformy Azure.

Zobacz też

Aby uzyskać więcej informacji na temat korzystania z aplikacji Spring Boot na platformie Azure, zobacz następujące artykuły:

Aby uzyskać więcej informacji na temat korzystania z platformy Azure z językiem Java, zobacz Azure for Java Developers oraz Praca z usługami Azure DevOps i Java.

Aby uzyskać więcej informacji na temat przykładowego projektu Spring Boot na platformie Docker, zobacz Spring Boot on Docker Getting Started.

Aby uzyskać pomoc w rozpoczęciu pracy z własnymi aplikacjami Spring Boot, odwiedź Spring Initializr na stronie https://start.spring.io/.

Aby uzyskać więcej informacji na temat rozpoczynania pracy z tworzeniem prostej aplikacji Spring Boot, odwiedź witrynę Spring Initializr na stronie https://start.spring.io/.

Aby uzyskać dodatkowe przykłady używania niestandardowych obrazów Docker z platformą Azure, zobacz Korzystanie z niestandardowego obrazu Docker dla aplikacji sieciowej Azure na Linux.