Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se dozvíte, jak pomocí Dockeru kontejnerizovat aplikaci Spring Boot a nasadit vlastní image Dockeru do hostitele Linuxu v Azure App Service.
Požadavky
K dokončení kroků v tomto kurzu potřebujete následující požadavky:
- Předplatné Azure; pokud ještě nemáte předplatné Azure, aktivujte výhody pro předplatitele MSDN nebo si zaregistrujte bezplatný Azure účet.
- Azure Command-Line rozhraní (CLI).
- Podporovaná vývojová sada Javy (JDK). Další informace o sadách JDK, které jsou k dispozici při vývoji v Azure, najdete v tématu podpora Javy v Azure a azure Stack.
- nástroj pro sestavení Apache Maven (verze 3).
- Git klient.
- klient Docker.
Poznámka
Vzhledem k požadavkům na virtualizaci tohoto kurzu nemůžete postupovat podle kroků v tomto článku na virtuálním počítači. Musíte použít fyzický počítač s povolenými funkcemi virtualizace.
Vytvoření úvodní webové aplikace Spring Boot na Dockeru
Následující kroky provedou kroky potřebné k vytvoření jednoduché webové aplikace Spring Boot a jeho místní testování.
Otevřete příkazový řádek a vytvořte místní adresář pro uložení aplikace a přejděte na tento adresář; Například:
mkdir SpringBoot cd SpringBootNaklonujte ukázkový projekt Spring Boot v Dockeru Začínáme do vytvořeného adresáře; například:
git clone https://github.com/spring-guides/gs-spring-boot-docker.gitZměnit adresář na dokončený projekt; například:
cd gs-spring-boot-docker/completeSestavení souboru JAR pomocí Mavenu; například:
mvn packagePo vytvoření webové aplikace změňte adresář na
targetadresář, ve kterém se nachází soubor JAR, a spusťte webovou aplikaci, například:cd target java -jar spring-boot-docker-complete-0.0.1-SNAPSHOT.jar --server.port=80Otestujte webovou aplikaci tak, že na ni přejdete místně pomocí webového prohlížeče. Pokud máte například k dispozici curl a nakonfigurovali jste server Tomcat tak, aby běžel na portu 80:
curl http://localhostZobrazí se následující zpráva: Hello Docker World
Vytvoření Azure Container Registry pro použití jako privátního registru Dockeru
Následující kroky vás provedou vytvořením služby Azure Container Registry pomocí portálu Azure.
Poznámka
Pokud chcete místo webu Azure Portal použít Azure CLI, postupujte podle pokynů v tématu Vytvoření privátního registru kontejneru Dockeru pomocí azure CLI 2.0.
Přejděte na webu Azure Portal a přihlaste se.
Po přihlášení ke svému účtu na portálu Azure postupujte podle kroků v tématu Vytvoření privátního registru kontejneru Dockeru pomocí článku Azure portálu. Následující kroky parafrázují tyto pokyny pro účely urychlení.
Vyberte ikonu nabídky pro možnost Nový, vyberte Kontejnery a pak vyberte Azure Container Registry.
Po zobrazení stránky Vytvořit registr kontejneru zadejte název registru, předplatné, skupinu prostředků a umístění. Pak vyberte Vytvořit.
V části Nastavení vyberte Přístupové klíče a zapněte přepínač Povoleno pro uživatele správce.
Konfigurace Mavenu pro sestavení image do služby Azure Container Registry
Přejděte do adresáře dokončeného projektu pro aplikaci Spring Boot , například C:\SpringBoot\gs-spring-boot-docker\complete nebo /users/robert/SpringBoot/gs-spring-boot-docker/complete – a otevřete pom.xml soubor v textovém editoru.
Aktualizujte kolekci
<properties>v souboru pom.xml o nejnovější verzijib-maven-plugin, hodnotu přihlašovacího serveru a nastavení přístupu pro službu Azure Container Registry z předchozí části tohoto kurzu. Například:<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>Přidejte
jib-maven-plugindo<plugins>kolekce v souboru pom.xml. Tento příklad používá verzi 3.2.0.Zadejte základní image na
<from>/<image>, zdemcr.microsoft.com/openjdk/jdk:11-ubuntu. Zadejte název výsledného image, které se má vytvořit ze základního image uvedeného v<to>/<image>.Ověření
{docker.image.prefix}je server pro přihlášení na dříve zobrazené stránce registru.{project.artifactId}je název a číslo verze souboru JAR z prvního sestavení 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>Přejděte do dokončeného adresáře projektu pro aplikaci Spring Boot a spuštěním následujícího příkazu znovu sestavte aplikaci a odešlete kontejner do Azure Container Registry:
az acr login --name wingtiptoysregistry && mvn compile jib:build
Poznámka
Příkaz az acr login ... se pokusí přihlásit do služby Azure Container Registry. V opačném případě musíte poskytnout <username> a <password> pro jib-maven-plugin. Další informace najdete v tématu Metody ověřování v jib.
Když použijete Jib k nasdílení image do Azure Container Registry, image nepoužívá soubor Dockerfile. Další informace najdete v tomto článku.
Vytvoření webové aplikace v Linuxu na Azure App Service pomocí image kontejneru
Přejděte na webu Azure Portal a přihlaste se.
Vyberte ikonu nabídky pro vytvoření prostředku, vyberte Výpočetní prostředky a potom vyberte Webová aplikace.
Jakmile se zobrazí stránka Webové aplikace na Linuxu , zadejte následující informace:
V rozevíracím seznamu vyberte Předplatné.
Zvolte existující skupinu prostředkůnebo zadejte název pro vytvoření nové skupiny prostředků.
Zadejte jedinečný název názvu aplikace; Například: wingtiptoyslinux.
Zadejte
Docker Containeraž Publikovat.V poli operačního systému
zvolte Linux .Vyberte oblasti .
Přijměte plán Linux a zvolte existující plán služby App Service, nebo vyberte Vytvořit nový a vytvořte nový plán služby App Service.
Vyberte Další: Docker.
Na stránce Web App vyberte Dockera zadejte následující informace:
Vyberte jediný kontejner.
Registr: Vyberte kontejner, například: wingtiptoysregistry.
image: Vyberte image vytvořenou dříve, například: spring-boot-docker.
značka: Zvolte značku obrázku, například: nejnovější.
Spouštěcí příkaz: Nechte ho prázdné, protože image už má spouštěcí příkaz.
Po zadání všech předchozích informací vyberte Zkontrolovat a vytvořit.
- Vyberte Zkontrolovat a vytvořit.
Zkontrolujte informace a vyberte Vytvořit.
Po dokončení nasazení vyberte Přejít k zdroji. Na stránce nasazení se zobrazí adresa URL pro přístup k aplikaci.
Poznámka
Azure automaticky mapuje internetové požadavky na vložený server Tomcat, který běží na portu 80. Pokud ale nakonfigurujete vložený server Tomcat tak, aby běžel na portu 8080 nebo na vlastním portu, musíte do webové aplikace přidat proměnnou prostředí, která definuje port pro vložený server Tomcat. Pokud chcete přidat proměnnou prostředí, postupujte následovně:
Přejděte na webu Azure Portal a přihlaste se.
Vyberte ikonu pro Web Appsa vyberte svou aplikaci na stránce App Services.
V levém navigačním podokně vyberte Konfigurace.
V části Nastavení aplikace přidejte nové nastavení s názvem WEBSITES_PORT a zadejte vlastní číslo portu pro hodnotu.
Vyberte OK. Pak vyberte Uložit.
Vyčištění prostředků
Pokud už prostředky nepotřebujete, odstraňte je pomocí portálu Azure. Odstraněním zdrojů se můžete vyhnout neočekávaným poplatkům.
Další kroky
Další informace o Springu a Azure najdete v centru dokumentace Spring on Azure.
Viz také
Další informace o používání aplikací Spring Boot v Azure najdete v následujících článcích:
Další informace o používání Azure s Javou najdete v Azure pro vývojáře v Javě a Práce s Azure DevOps a javou.
Další podrobnosti o ukázkovém projektu Spring Boot v Dockeru najdete v tématu Spring Boot v Dockeru Začínáme.
Nápovědu k zahájení práce s vlastními aplikacemi Spring Boot najdete v tématu Spring Initializr na https://start.spring.io/.
Další informace o tom, jak začít vytvářet jednoduchou aplikaci Spring Boot, naleznete v aplikaci Spring Initializr na https://start.spring.io/.
Další příklady použití vlastních imagí Dockeru s Azure najdete v tématu Použití vlastní image Dockeru pro Azure Web App v Linuxu.