Kontejnerizace aplikace pomocí balíčků Paketo Buildpacks
Poznámka:
Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.
Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.
Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise
Tento článek popisuje, jak sestavit image kontejneru pomocí paketo Buildpacks.
Služba Azure Spring Apps podporuje vytváření image ze zdrojového kódu bez použití souborů Dockerfile. Není omezena na aplikace v Javě, ale rozšiřuje se o další programovací jazyky a dokonce i statický webový obsah. V plánu Standard služba používá opensourcové balíčky Paketo Buildpacks, zatímco v plánu Enterprise používá balíčky VMware Tanzu Buildpacks. Pokud jsou balíčky Tanzu Buildpack nedostupné nebo pro použití Paketo neexistuje žádná online služba, můžete přepnout na místní balíčky Paketo Buildpacks a sestavovat image. Pak je nasaďte do služby Azure Container Registry nebo do jiných registrů Dockeru.
V tomto článku se dozvíte, jak vytvořit tvůrce se souborem TOML a pak vytvořit zdrojový kód nebo soubor artefaktů pomocí tvůrce. Další informace najdete v souboru builder.toml. Informace o imagi sestavení, spuštění image a zásobníku najdete v tématu Co jsou základní image.
Požadavky
Plán Standard
Plán Azure Spring Apps Standard je součástí integrovaného tvůrce, který nemůžete přizpůsobit. Pokud používáte plán Standard, musíte vytvořit soubor TOML s názvem standard-builder.toml s následujícím obsahem. S tímto souborem můžete vytvořit ekvivalent tvůrce, který je k dispozici v plánu Azure Spring Apps Standard.
# filename: standard-builder.toml
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/java-azure:12.0.0"
id = "paketo-buildpacks/java-azure"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/java-native-image:9.8.0"
id = "paketo-buildpacks/java-native-image"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/dotnet-core:0.48.3"
id = "paketo-buildpacks/dotnet-core"
[[order]]
[[order.group]]
id = "paketo-buildpacks/java-azure"
[[order]]
[[order.group]]
id = "paketo-buildpacks/java-native-image"
[[order]]
[[order.group]]
id = "paketo-buildpacks/dotnet-core"
[build]
image = "paketobuildpacks/build-jammy-base:0.1.129"
[run]
[[run.images]]
image = "paketobuildpacks/run-jammy-base:0.1.129"
Pokud chcete vytvořit tvůrce s tímto souborem TOML, použijte následující příkaz:
pack builder create <builder-name> --config ./standard-builder.toml
Tvůrce můžete zkontrolovat pomocí následujícího příkazu:
pack builder inspect <builder-name>
Pokud chcete vytvořit zdrojový kód Java nebo zdrojový kód .NET do image kontejneru pomocí tohoto tvůrce, použijte následující příkaz:
pack build <image-name> \
--path <path-to-source-root> \
--builder <builder-name>
Pokud chcete vytvořit artefakt ( například soubor JAR nebo WAR) do image kontejneru pomocí tvůrce, použijte následující příkaz:
pack build <image-name> \
--path <path-to-artifact> \
--builder <builder-name>
Plán Enterprise
Plán Azure Spring Apps Enterprise používá balíčky VMware Tanzu Buildpacks k sestavení zdrojového kódu pro image kontejnerů. Balíčky Tanzu Buildpacks jsou postavené na opensourcových buildpackech Paketo. Takže pravděpodobně není možné najít balíček Paketo buildpack přesně ekvivalentní tanzu.
V této části se dozvíte, jak vytvořit tvůrce s balíčky Paketo Buildpack, které jsou blízko, ale ne úplně stejné jako v plánu Enterprise. Je vaší zodpovědností spouštět testy nebo se podívat na buildpacky, abyste potvrdili kompatibilitu sestavení v plánu Enterprise a vlastního tvůrce na místním počítači.
Plán Enterprise se dodává s výchozím tvůrcem, který se skládá z následujících součástí:
- Zásobník operačního systému: io.buildpacks.stacks.jammy-base
- Buildpacky:
- tanzu-buildpacks/java-azure
- tanzu-buildpacks/dotnet-core
- tanzu-buildpacks/go
- tanzu-buildpacks/web-servers
- tanzu-buildpacks/nodejs
- tanzu-buildpacks/python
Pomocí rozhraní příkazového řádku balíčku můžete vytvořit podobný tvůrce se zásobníkem Paketo OS a balíčky Paketo Buildpack na místním počítači. Pak můžete pomocí tohoto nově vytvořeného tvůrce sestavit zdrojový kód aplikace.
Pokud používáte jiného tvůrce než výchozí, musíte zkontrolovat jeho konfiguraci – zásobník operačního systému a buildpacky – a pak vytvořit tvůrce Paketo podobný ho. Pokud chcete zkontrolovat konfiguraci tvůrce, přejděte na web Azure Portal, vyhledejte instanci Azure Spring Apps a pak zobrazte podokno Služby sestavení. Vyhledejte tvůrce a pak vyberte Upravit Tvůrce. Alternativně můžete použít příkaz az spring build-service builder show
Azure CLI .
Následující tabulka ukazuje zásobník operačního systému Paketo, který odpovídá zásobníkům operačního systému používaným v plánu Enterprise:
Zásobník operačního systému v plánu Enterprise | Paketo OS stack |
---|---|
io.buildpacks.stacks.jammy-base |
paketobuildpacks/jammy-base-stack Vybudovat: paketobuildpacks/build-jammy-base Spusťte paketobuildpacks/run-jammy-base . |
io.buildpacks.stacks.jammy-full |
paketobuildpacks/jammy-full-stack Vybudovat: paketobuildpacks/build-jammy-full Spusťte paketobuildpacks/run-jammy-full . |
io.buildpacks.stacks.jammy-tiny |
paketobuildpacks/jammy-tiny-stack Vybudovat: paketobuildpacks/build-jammy-tiny Spusťte paketobuildpacks/run-jammy-tiny . |
io.buildpacks.stacks.bionic-base (End of support) |
paketobuildpacks/bionic-base-stack Vybudovat: paketobuildpacks/build-bionic-base Spusťte paketobuildpacks/run-bionic-base . |
io.buildpacks.stacks.bionic-full (End of support) |
paketobuildpacks/bionic-full-stack Vybudovat: paketobuildpacks/build-bionic-full Spusťte paketobuildpacks/run-bionic-full . |
Následující tabulka ukazuje ekvivalenty balíčku Paketo Buildpack k buildpackům používaným v plánu Enterprise:
Buildpack v plánu Enterprise | Paketo Buildpack |
---|---|
tanzu-buildpacks/dotnet-core |
paketo-buildpacks/dotnet-core |
tanzu-buildpacks/go |
paketo-buildpacks/go |
tanzu-buildpacks/java-azure |
paketo-buildpacks/java-azure |
tanzu-buildpacks/java-native-image |
paketo-buildpacks/java-native-image |
tanzu-buildpacks/nodejs |
paketo-buildpacks/nodejs |
tanzu-buildpacks/php |
paketo-buildpacks/php |
tanzu-buildpacks/python |
paketo-buildpacks/python |
tanzu-buildpacks/web-servers |
paketo-buildpacks/web-servers |
Jako příklad vezměte výchozího tvůrce v plánu Enterprise. Pomocí následujícího souboru TOML s názvem enterprise-builder.toml můžete na místním počítači vytvořit podobného tvůrce:
# filename: enterprise-builder.toml
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/java-azure:latest"
id = "paketo-buildpacks/java-azure"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/dotnet-core:latest"
id = "paketo-buildpacks/dotnet-core"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/go:latest"
id = "paketo-buildpacks/go"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/web-servers:latest"
id = "paketo-buildpacks/web-servers"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/nodejs:latest"
id = "paketo-buildpacks/nodejs"
[[buildpacks]]
uri = "docker://docker.io/paketobuildpacks/python:latest"
id = "paketo-buildpacks/python"
[[order]]
[[order.group]]
id = "paketo-buildpacks/java-azure"
[[order]]
[[order.group]]
id = "paketo-buildpacks/dotnet-core"
[[order]]
[[order.group]]
id = "paketo-buildpacks/go"
[[order]]
[[order.group]]
id = "paketo-buildpacks/web-servers"
[[order]]
[[order.group]]
id = "paketo-buildpacks/nodejs"
[[order]]
[[order.group]]
id = "paketo-buildpacks/python"
[build]
image = "paketobuildpacks/build-jammy-base:latest"
[run]
[[run.images]]
image = "paketobuildpacks/run-jammy-base:latest"
K vytvoření sestavení s tímto souborem TOML použijte následující příkaz:
pack builder create <builder-name> --config ./enterprise-builder.toml
Tvůrce můžete zkontrolovat pomocí následujícího příkazu:
pack builder inspect <builder-name>
Teď máte tvůrce podobný výchozímu tvůrci v plánu Azure Spring Apps Enterprise. Pomocí tohoto tvůrce můžete pomocí následujícího příkazu sestavit soubor JAR, SOUBOR WAR, zdrojový kód Java, zdrojový kód .NET, zdrojový kód Jazyka Go, Node.js zdrojový kód nebo zdrojový kód Pythonu do image kontejneru:
pack build <image-name> \
--path <path-to-source-root> \
--builder <builder-name>
Pokud chcete vytvořit artefakt ( například soubor JAR nebo WAR) do image kontejneru pomocí tvůrce, použijte následující příkaz:
pack build <image-name> \
--path <path-to-artifact> \
--builder <builder-name>
Můžete také přizpůsobit soubor enterprise-builder.toml přidáním nebo odebráním balíčků buildů a následnou aktualizací stávajícího tvůrce nebo vytvořením nového tvůrce.
Vlastní nastavení
Buildpacky poskytují způsob, jak přizpůsobit různé konfigurace. Následující příklady ukazují běžné scénáře sestavení image kontejneru s konkrétními požadavky:
- Pokud chcete přizpůsobit sadu JDK pro zdrojový kód Java, přečtěte si téma paketo-buildpacks/microsoft-openjdk.
- Informace o přizpůsobení Tomcatu pro WARs najdete v tématu paketo-buildpacks/apache-tomcat.
- Pokud chcete do úložiště důvěryhodnosti systému přidat certifikáty certifikační autority za běhu a sestavení, přečtěte si téma paketo-buildpacks/ca-certificates.