Buildumgebungsvariablen für Java in Azure Container Apps (Preview)
Azure Container Apps verwendet Buildpacks, um automatisch ein Containerimage zu erstellen, das die Bereitstellung aus Ihrem Quellcode direkt in der Cloud ermöglicht. Um die Kontrolle über die Buildkonfiguration zu übernehmen, können Sie Umgebungsvariablen verwenden und Teile Ihres Builds wie das JDK, Maven und Tomcat anpassen. Im folgenden Artikel erfahren Sie, wie Sie Umgebungsvariablen konfigurieren, um die Kontrolle über Builds zu übernehmen, die automatisch einen Container für Sie erstellen.
Unterstützte Java-Buildumgebungsvariablen
Konfigurieren von JDK
Container Apps verwendet Microsoft Build von OpenJDK zum Erstellen von Quellcode und als Laufzeitumgebung. Vier LTS JDK-Versionen werden unterstützt: 8, 11, 17 und 21.
Für die Erstellung von Quellcode ist die Standardversion JDK 17.
Bei einem JAR-Dateibuild wird die JDK-Version aus dem Dateispeicherort
META-INF\MANIFEST.MF
im JAR gelesen, aber die Standard-JDK-Version 17 verwendet, wenn die angegebene Version nicht verfügbar ist.
Hier ist eine Liste der Umgebungsvariablen, die zum Konfigurieren von JDK verwendet werden:
Umgebungsvariable | Beschreibung | Standard |
---|---|---|
BP_JVM_VERSION |
Steuert die JVM-Version. | 17 |
Konfigurieren von Maven
Container Apps unterstützt das Erstellen von Maven-basierten Anwendungen aus Quellcode.
Hier ist eine Liste der Umgebungsvariablen, die zum Konfigurieren von Maven verwendet werden:
Buildumgebungsvariable | Beschreibung | Standard |
---|---|---|
BP_MAVEN_VERSION |
Legt die Hauptversion von Maven fest. Da Buildpacks nur eine einzelne Version jeder unterstützten Zeile enthält, können Updates für das Buildpack die genaue installierte Maven-Version ändern. Wenn Sie eine bestimmte Neben-/Patchversion von Maven benötigen, verwenden Sie stattdessen den Maven-Wrapper. | 3 |
BP_MAVEN_BUILD_ARGUMENTS |
Definiert die Argumente, die an Maven übergeben werden. --batch-mode wird der Argumentliste in Umgebungen ohne TTY vorangestellt. |
-Dmaven.test.skip=true --no-transfer-progress package |
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS |
Definiert zusätzliche verwendete Argumente (z. B. -DskipJavadoc an BP_MAVEN_BUILD_ARGUMENTS angefügt), die an Maven übergeben werden sollen. |
|
BP_MAVEN_ACTIVE_PROFILES |
Kommagetrennte Liste der aktiven Profile, die an Maven übergeben werden. | |
BP_MAVEN_BUILT_MODULE |
Legt das Anwendungsartefakt fest, das das Modul enthält. Standardmäßig sucht der Build im Stammmodul. | |
BP_MAVEN_BUILT_ARTIFACT |
Speicherort des erstellten Anwendungsartefakts. Dieser Wert ersetzt die BP_MAVEN_BUILT_MODULE -Variable. Sie können eine einzelne Datei, mehrere Dateien oder ein Verzeichnis mit einem oder mehreren durch Leerzeichen getrennte Muster abgleichen. |
target/*.[ejw]ar |
BP_MAVEN_POM_FILE |
Gibt einen benutzerdefinierten Speicherort für die pom.xml-Datei des Projekts an. Dieser Wert ist relativ zum Stamm des Projekts (z. B. /workspace). | pom.xml |
BP_MAVEN_DAEMON_ENABLED |
Löst die Installation und Konfiguration von Apache maven-mvnd anstelle von Maven aus. Legen Sie diesen Wert auf true fest, wenn Sie den Maven Daemon verwenden möchten. |
false |
BP_MAVEN_SETTINGS_PATH |
Gibt einen benutzerdefinierten Speicherort für die settings.xml-Datei von Maven an. | |
BP_INCLUDE_FILES |
Durch Doppelpunkt getrennte Liste von Globmustern zum Abgleichen mit Quelldateien. Jede übereinstimmende Datei wird im endgültigen Image beibehalten. | |
BP_EXCLUDE_FILES |
Durch Doppelpunkt getrennte Liste von Globmustern zum Abgleichen mit Quelldateien. Jede übereinstimmende Datei wird im endgültigen Image entfernt. Alle einschließenden Muster werden zuerst angewendet, und Sie können „Ausschlussmuster“ verwenden, um die Anzahl der im Build enthaltenen Dateien zu reduzieren. | |
BP_JAVA_INSTALL_NODE |
Steuert, ob ein separates Buildpack Yarn und Node.js installiert. Wenn dieser Wert auf true festgelegt ist, überprüft das Buildpack den durch BP_NODE_PROJECT_PATH festgelegten App-Stamm oder Pfad. Der Projektpfad sucht nach einer yarn.lock-Datei, die die Installation von Yarn und Node.js erfordert. Wenn eine package.json-Datei vorhanden ist, ist für den Build nur Node.js erforderlich. |
false |
BP_NODE_PROJECT_PATH |
Gibt das Projektunterverzeichnis an, in dem nach package.json- und yarn.lock-Dateien gesucht werden soll. |
Konfigurieren von Tomcat
Container Apps unterstützt das Ausführen einer WAR-Datei auf dem Tomcat-Anwendungsserver.
Hier ist eine Liste der Umgebungsvariablen, die zum Konfigurieren von Tomcat verwendet werden:
Buildumgebungsvariable | Beschreibung | Standard |
---|---|---|
BP_TOMCAT_CONTEXT_PATH |
Der Kontextpfad, über den die Anwendung bereitgestellt wird. | Ist standardmäßig leer (ROOT ). |
BP_TOMCAT_EXT_CONF_SHA256 |
Der SHA256-Hash des externen Konfigurationspakets. | |
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED |
Bei Festlegung auf true konfiguriert das Buildpack org.apache.tomcat.util.digester.EnvironmentPropertySource nicht. Diese Konfigurationsoption wird hinzugefügt, um das Laden der Konfiguration aus Umgebungsvariablen und das Verweisen darauf in Tomcat-Konfigurationsdateien zu unterstützen. |
|
BP_TOMCAT_EXT_CONF_STRIP |
Die Anzahl der Verzeichnisebenen, die aus dem externen Konfigurationspaket entfernt werden sollen. | 0 |
BP_TOMCAT_EXT_CONF_URI |
Der Download-URI des externen Konfigurationspakets. | |
BP_TOMCAT_EXT_CONF_VERSION |
Die Version des externen Konfigurationspakets. | |
BP_TOMCAT_VERSION |
Wird verwendet, um eine bestimmte Tomcat-Version zu konfigurieren. Unterstützte Tomcat-Versionen sind 8, 9 und 10. | 9.* |
Konfigurieren eines Cloudbuilddiensts
Hier ist eine Liste der Umgebungsvariablen, die zum Konfigurieren eines Cloudbuilddiensts verwendet werden:
Buildumgebungsvariable | Beschreibung | Standard |
---|---|---|
ORYX_DISABLE_TELEMETRY |
Steuert, ob die Telemetrieerfassung deaktiviert werden soll. | false |
Konfigurieren von Java-Buildumgebungsvariablen
Hinweis
Verwenden Sie die Container-Apps-Erweiterungsversion 0.3.47
oder höher, um die folgenden CLI-Befehle auszuführen. Installieren Sie mit dem Befehl az extension add --name containerapp --upgrade --allow-preview
die aktuelle Version.
Sie können Java-Buildumgebungsvariablen konfigurieren, wenn Sie Java-Anwendungsquellcode über den CLI-Befehl az containerapp up
, az containerapp create
oder az containerapp update
bereitstellen:
az containerapp up \
--name <CONTAINER_APP_NAME> \
--source <SOURCE_DIRECTORY> \
--build-env-vars <NAME=VALUE NAME=VALUE> \
--resource-group <RESOURCE_GROUP_NAME> \
--environment <ENVIRONMENT_NAME>
Das build-env-vars
-Argument ist eine Liste von Umgebungsvariablen für den Build (durch Leerzeichen getrennte Werte im key=value
-Format). Hier ist eine Beispielliste, die Sie als Variablen übergeben können:
BP_JVM_VERSION=21 BP_MAVEN_VERSION=4 "BP_MAVEN_BUILD_ARGUMENTS=-Dmaven.test.skip=true --no-transfer-progress package"
Sie können die Java-Buildumgebungsvariablen auch konfigurieren, wenn Sie GitHub Actions mit Azure CLI in Azure Container Apps einrichten.
az containerapp github-action add \
--repo-url "https://github.com/<OWNER>/<REPOSITORY_NAME>" \
--build-env-vars <NAME=VALUE NAME=VALUE> \
--branch <BRANCH_NAME> \
--name <CONTAINER_APP_NAME> \
--resource-group <RESOURCE_GROUP> \
--registry-url <URL_TO_CONTAINER_REGISTRY> \
--registry-username <REGISTRY_USER_NAME> \
--registry-password <REGISTRY_PASSWORD> \
--service-principal-client-id <appId> \
--service-principal-client-secret <password> \
--service-principal-tenant-id <tenant> \
--token <YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>