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.
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
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
Zmień folder na ukończony projekt, na przykład:
cd gs-spring-boot-docker/complete
Skompiluj plik JAR przy użyciu narzędzia Maven; na przykład:
mvn package
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
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
Powinien zostać wyświetlony następujący komunikat: Hello Docker World
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.
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ć.
Kliknij ikonę menu Nowy, wybierz pozycję Containers, a następnie wybierz pozycję Azure Container Registry.
usługi Azure Container Registry
Kiedy zostanie wyświetlona strona tworzenie rejestru kontenerów, wprowadź nazwę rejestru, subskrypcję, grupę zasobówi lokalizację. Następnie wybierz pozycję Utwórz.
Wybierz pozycję
Klucze dostępu w obszarze Ustawieniai włącz przełącznik włączony za administratorem .
Skonfiguruj Maven do tworzenia obrazu w Azure Container Registry
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.
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>
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>
, tutajmcr.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>
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
- 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. - 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
Przejdź do witryny Azure Portal i zaloguj się.
Kliknij ikonę menu Utwórz zasób, wybierz pozycję Compute, a następnie wybierz pozycję Web App.
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.
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.
- 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.
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:
Przejdź do witryny Azure Portal i zaloguj się.
Wybierz ikonę Web Appsi wybierz aplikację na stronie App Services.
Wybierz pozycję Konfiguracja w okienku nawigacji po lewej stronie.
W sekcji Ustawienia aplikacji dodaj nowe ustawienie o nazwie WEBSITES_PORT i wprowadź niestandardowy numer portu dla wartości.
Wybierz pozycję OK. Następnie wybierz pozycję Zapisz.
pl-PL:
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.