Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym samouczku pokazano, jak za pomocą platformy Docker konteneryzować aplikację Spring Boot i wdrożyć własny obraz platformy Docker na hoście systemu Linux w Azure App Service.
Warunki wstępne
Aby wykonać kroki opisane w tym samouczku, potrzebne są następujące wymagania wstępne:
- Subskrypcja Azure; jeśli nie masz jeszcze subskrypcji Azure, aktywuj korzyści subskrybenta MSDN lub zarejestruj się w celu uzyskania bezpłatnego konta 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 i przejdź do tego katalogu; na przykład:
mkdir SpringBoot cd SpringBootSklonuj 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.gitZmień folder na ukończony projekt, na przykład:
cd gs-spring-boot-docker/completeSkompiluj plik JAR przy użyciu narzędzia Maven; na przykład:
mvn packagePo utworzeniu aplikacji internetowej zmień katalog na
targetkatalog, 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=80Przetestuj 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://localhostZostanie wyświetlony następujący komunikat: Hello Docker World
Tworzenie Azure Container Registry 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 w portalu Azure wykonaj kroki opisane w artykule Tworzenie prywatnego rejestru kontenerów platformy Docker przy użyciu portalu Azure. Poniższe kroki parafrazują te instrukcje ze względu na celowość.
Wybierz ikonę menu Nowy, wybierz pozycję Kontenery, a następnie wybierz pozycję Azure Container Registry.
usługi Azure Container RegistryPo wyświetleniu strony Tworzenie rejestru kontenerów wprowadź nazwę rejestru, subskrypcję, grupę zasobów i lokalizację. Następnie wybierz pozycję Utwórz.
Wybierz pozycję Klucze dostępu w obszarze Ustawienia i włącz przełącznik Włączone dla użytkownika administracyjnego.
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 — i otwórz plik pom.xml za pomocą edytora tekstów.
Zaktualizuj kolekcję
<properties>w pliku pom.xml do najnowszej wersjijib-maven-plugin, wartości serwera logowania i ustawień dostępu dla rejestru Azure Container Registry z poprzedniej sekcji 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-plugindo kolekcji<plugins>w pliku pom.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 do skompilowania z bazy w pliku<to>/<image>.Uwierzytelnianie
{docker.image.prefix}to serwer logowania na pokazanej wcześniej stronie rejestru.{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 Azure Container Registry:
az acr login --name wingtiptoysregistry && mvn compile jib:build
Notatka
Polecenie az acr login ... próbuje zalogować do usługi Azure Container Registry. W przeciwnym razie należy podać <username> i <password> dla jib-maven-plugin. Aby dowiedzieć się więcej, zobacz Metody uwierzytelniania w jib.
Gdy używasz narzędzia Jib do wypychania obrazu do Azure Container Registry, obraz nie używa pliku Dockerfile. Aby uzyskać więcej informacji, zobacz ten artykuł.
Tworzenie aplikacji internetowej w systemie Linux na Azure App Service przy użyciu obrazu kontenera
Przejdź do witryny Azure Portal i zaloguj się.
Wybierz ikonę menu Utwórz zasób, wybierz pozycję Obliczenia, a następnie wybierz pozycję Aplikacja Web.
Gdy zostanie wyświetlona strona Aplikacja internetowa w systemie 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ę nazwy 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.
Wybierz pozycję 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.
Polecenie uruchamiania: pozostaw to pole puste, ponieważ obraz ma już polecenie uruchamiania.
Po wprowadzeniu wszystkich powyższych informacji wybierz pozycję Przejrzyj i utwórz.
- Wybierz Przejrzyj i utwórz.
Przejrzyj informacje i wybierz opcję Utwórz.
Po zakończeniu wdrożenia wybierz Przejdź do zasobu. Na stronie wdrażania zostanie wyświetlony adres URL umożliwiający uzyskanie dostępu do aplikacji.
Notatka
Azure automatycznie mapuje żądania internetowe na osadzony serwer Tomcat działający na porcie 80. Jeśli jednak skonfigurujesz osadzony serwer Tomcat tak, aby był uruchamiany na porcie 8080 lub niestandardowym, musisz dodać zmienną środowiskową do aplikacji internetowej, która definiuje port dla osadzonego serwera Tomcat. Aby dodać zmienną środowiskową, wykonaj następujące kroki:
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
Jeśli zasoby nie są już potrzebne, użyj portalu Azure, aby je usunąć. Usunięcie zasobów pomaga 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ć więcej przykładów używania niestandardowych obrazów platformy Docker z Azure, zobacz Using a custom Docker image for Azure Web App on Linux (Używanie niestandardowego obrazu platformy Docker dla aplikacji internetowej Azure w systemie Linux).