Freigeben über


Buildumgebungsvariablen für Java in Azure Container Apps

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>

Nächste Schritte