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.
Poznámka:
Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise
Tento článek obsahuje pokyny k zabalení aplikace v Javě ze souboru JAR nebo WAR do image kontejneru.
Plán Azure Spring Apps Standard umožňuje nahrát soubor JAR nebo WAR, který se automaticky zabalí do spravované image kontejneru. Podobně služba Azure Container Apps a Azure Kubernetes Service (AKS) také podporují nasazení aplikace typu kontejner přímo ze souboru JAR nebo WAR.
Požadavky
- Docker.
- Registr existující pro ukládání obrazů kontejnerů. Pro Službu Azure Container Registry ji můžete nastavit pomocí webu Azure Portal nebo pomocí Azure CLI.
Sestavení obrazu kontejneru
Pokud chcete vytvořit image kontejneru, která je konzistentní s imagí používanou v Azure Spring Apps, můžete image vytvořit sami. K sestavení souboru JAR, souboru WAR nebo zdrojového kódu Java do image kontejneru použijte následující obecné kroky:
- Sestavte zdrojový kód Java do souboru JAR nebo souboru WAR.
- Vytvořte soubor Dockerfile a proveďte následující akce:
- (Pouze pro soubory WAR) Stáhněte si Tomcat a nakonfigurujte ho.
- Zkopírujte soubor JAR nebo soubor WAR do image kontejneru.
- Zadejte vstupní bod image kontejneru.
- Vytvořte image kontejneru
docker buildspuštěním příkazu se souborem Dockerfile vytvořeným v předchozím kroku. - Nasdílení image kontejneru do veřejného nebo privátního registru kontejneru, abyste ji mohli nasadit v prostředí Azure Container Apps nebo clusteru Azure Kubernetes Service (AKS) později.
Následující části popisují tyto kroky podrobněji.
Vytvoření souboru JAR
Doporučujeme používat kontejnerové image pro Microsoft Build OpenJDK, pokud vaše aplikace běží hladce na Azure Spring Apps. Pokud se vaše požadavky změní, můžete zvolit jiné image kontejnerů, které lépe vyhovují vašim potřebám.
Pokud chcete zjistit verzi sady JDK použitou ve vašem nasazení spuštěném v Azure Spring Apps, použijte následující příkaz:
az spring app deployment show \
--app <app-name> \
--name <deployment-name> \
--resource-group <resource-group> \
--service <service-name> \
--query properties.source.runtimeVersion
Následující příklad souboru Dockerfile je založen na JDK 17:
# filename: JAR.dockerfile
FROM mcr.microsoft.com/openjdk/jdk:17-mariner
ARG JAR_FILENAME
COPY $JAR_FILENAME /opt/app/app.jar
ENTRYPOINT ["java", "-jar", "/opt/app/app.jar"]
K sestavení image kontejneru pomocí tohoto souboru Dockerfile použijte následující příkaz:
docker build -t <image-name>:<image-tag> \
-f JAR.dockerfile \
--build-arg JAR_FILENAME=<path-to-jar> \
.
Informace o přizpůsobení možností prostředí JVM naleznete v tématu Možnosti prostředí JVM.
Vytvoření souboru WAR
Než vytvoříte soubor WAR, musíte se rozhodnout, které verze sady JDK a Tomcat použít.
Pokud chcete zjistit verzi Tomcat použitou ve vašem nasazení spuštěnou v Azure Spring Apps, použijte následující příkaz:
az spring app deployment show \
--app <app-name> \
--name <deployment-name> \
--resource-group <resource-group> \
--service <service-name> \
--query properties.source.serverVersion
Následující příklad ukazuje soubor Dockerfile založený na JDK 17:
# filename: WAR.dockerfile
FROM mcr.microsoft.com/openjdk/jdk:17-mariner
ARG TOMCAT_VERSION
ARG TOMCAT_MAJOR_VERSION
ARG WAR_FILENAME
ARG TOMCAT_HOME=/opt/tomcat
# Set up Tomcat
ADD https://archive.apache.org/dist/tomcat/tomcat-$TOMCAT_MAJOR_VERSION/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz \
$TOMCAT_HOME/apache-tomcat-$TOMCAT_VERSION.tar.gz
RUN tdnf update -y \
&& tdnf install -y tar \
&& tar -zxf $TOMCAT_HOME/apache-tomcat-$TOMCAT_VERSION.tar.gz -C $TOMCAT_HOME --strip-components 1 \
&& rm $TOMCAT_HOME/apache-tomcat-$TOMCAT_VERSION.tar.gz \
&& rm -r $TOMCAT_HOME/webapps/*
COPY $WAR_FILENAME $TOMCAT_HOME/webapps/app.war
ENTRYPOINT ["/bin/sh", "-c" , "/opt/tomcat/bin/catalina.sh run"]
K sestavení image kontejneru pomocí tohoto souboru Dockerfile použijte následující příkaz:
docker build -t <image-name>:<image-tag> \
-f WAR.dockerfile \
--build-arg WAR_FILENAME=<path-to-war> \
--build-arg TOMCAT_VERSION=<version> \
--build-arg TOMCAT_MAJOR_VERSION=<major-version> \
.
Sestavení s více fázemi
Dva uvedené přístupy jsou sestavení pouze pro balíky. Spoléhají na váš místní nástroj sestavení ke správě procesu sestavení a zabalí výsledek do souboru JAR nebo WAR.
Pokud nechcete instalovat nástroj sestavení nebo sadu JDK na hostitelský počítač, ale chcete konzistentní výsledky napříč různými počítači, můžete použít alternativní metodu definováním více fází sestavení v souboru Dockerfile. Jedna fáze je vyhrazená pro kompilaci a balení a další fáze zpracovává proces vytváření obrázků. Další informace naleznete v tématu Vícefázové sestavení.
Úlohy služby Azure Container Registry
Pokud máte instanci služby Azure Container Registry, můžete sestavit, odeslat a spustit image kontejneru pomocí služby Azure Container Registry Tasks. Další informace najdete v tématu Rychlý start: Sestavení a spuštění image kontejneru pomocí úloh služby Azure Container Registry.