Omgevingsvariabelen bouwen voor Java in Azure Container Apps (preview)
Azure Container Apps maakt gebruik van Buildpacks om automatisch een containerinstallatiekopieën te maken waarmee u rechtstreeks vanuit uw broncode naar de cloud kunt implementeren. Als u de controle wilt overnemen over uw buildconfiguratie, kunt u omgevingsvariabelen gebruiken om onderdelen van uw build aan te passen, zoals de JDK, Maven en Tomcat. In het volgende artikel wordt beschreven hoe u omgevingsvariabelen configureert om de controle over builds over te nemen die automatisch een container voor u maken.
Ondersteunde omgevingsvariabelen voor Java-build
JDK configureren
Container Apps gebruiken Microsoft Build van OpenJDK om broncode en als runtime-omgeving te bouwen. Vier LTS JDK-versies worden ondersteund: 8, 11, 17 en 21.
Voor broncodebuild is de standaardversie JDK 17.
Voor een JAR-bestandsbuild wordt de JDK-versie gelezen vanuit de bestandslocatie
META-INF\MANIFEST.MF
in de JAR, maar wordt de standaard JDK-versie 17 gebruikt als de opgegeven versie niet beschikbaar is.
Hier volgt een overzicht van de omgevingsvariabelen die worden gebruikt voor het configureren van JDK:
Omgevingsvariabele | Beschrijving | Standaard |
---|---|---|
BP_JVM_VERSION |
Hiermee bepaalt u de JVM-versie. | 17 |
Maven configureren
Container Apps biedt ondersteuning voor het bouwen van op Maven gebaseerde toepassingen vanuit de bron.
Hier volgt een overzicht van de omgevingsvariabelen die worden gebruikt om Maven te configureren:
Omgevingsvariabele bouwen | Beschrijving | Standaard |
---|---|---|
BP_MAVEN_VERSION |
Hiermee stelt u de primaire Maven-versie in. Omdat Buildpacks slechts één versie van elke ondersteunde regel verzendt, kunnen updates van het buildpack de exacte versie van Maven wijzigen die is geïnstalleerd. Als u een specifieke secundaire/patchversie van Maven nodig hebt, gebruikt u in plaats daarvan de Maven-wrapper. | 3 |
BP_MAVEN_BUILD_ARGUMENTS |
Hiermee definieert u de argumenten die worden doorgegeven aan Maven. De --batch-mode lijst wordt voorafgegaan door de lijst met argumenten in omgevingen zonder een TTY. |
-Dmaven.test.skip=true --no-transfer-progress package |
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS |
Hiermee definieert u extra argumenten die worden gebruikt (bijvoorbeeld -DskipJavadoc toegevoegd aan BP_MAVEN_BUILD_ARGUMENTS ) om aan Maven door te geven. |
|
BP_MAVEN_ACTIVE_PROFILES |
Door komma's gescheiden lijst met actieve profielen die worden doorgegeven aan Maven. | |
BP_MAVEN_BUILT_MODULE |
Hiermee wijst u toepassingsartefacten aan die de module bevatten. Standaard ziet de build er in de hoofdmodule uit. | |
BP_MAVEN_BUILT_ARTIFACT |
Locatie van het gemaakte toepassingsartefact. Deze waarde vervangt de BP_MAVEN_BUILT_MODULE variabele. U kunt één bestand, meerdere bestanden of een map vergelijken met een of meer door ruimte gescheiden patronen. |
target/*.[ejw]ar |
BP_MAVEN_POM_FILE |
Hiermee geeft u een aangepaste locatie op voor het pom.xml-bestand van het project. Deze waarde is relatief ten opzichte van de hoofdmap van het project (bijvoorbeeld /workspace). | pom.xml |
BP_MAVEN_DAEMON_ENABLED |
Hiermee wordt de installatie en configuratie van Apache maven-mvnd geactiveerd in plaats van Maven. Stel deze waarde in op true als u de Maven-daemon wilt gebruiken. |
false |
BP_MAVEN_SETTINGS_PATH |
Hiermee geeft u een aangepaste locatie op naar het settings.xml-bestand van Maven. | |
BP_INCLUDE_FILES |
Door dubbele punt gescheiden lijst met glob-patronen die overeenkomen met bronbestanden. Elk overeenkomend bestand wordt bewaard in de uiteindelijke afbeelding. | |
BP_EXCLUDE_FILES |
Door dubbele punt gescheiden lijst met glob-patronen die overeenkomen met bronbestanden. Elk overeenkomend bestand wordt verwijderd uit de uiteindelijke afbeelding. Alle insluitingspatronen worden eerst toegepast en u kunt 'patronen uitsluiten' gebruiken om de bestanden in de build te verminderen. | |
BP_JAVA_INSTALL_NODE |
Bepalen of een afzonderlijk Buildpack Yarn en Node.js installeert. Als deze optie is ingesteld true , controleert buildpack de hoofdmap of het pad van de app dat is ingesteld door BP_NODE_PROJECT_PATH . Het projectpad zoekt naar een yarn.lock-bestand , waarvoor de installatie van Yarn en Node.js is vereist. Als er een package.json bestand is, is voor de build alleen Node.js vereist. |
false |
BP_NODE_PROJECT_PATH |
De submap van het project om te zoeken naar package.json- en yarn.lock-bestanden . |
Tomcat configureren
Container Apps biedt ondersteuning voor het uitvoeren van war-bestanden in de Tomcat-toepassingsserver.
Hier volgt een overzicht van de omgevingsvariabelen die worden gebruikt om Tomcat te configureren:
Omgevingsvariabele bouwen | Beschrijving | Standaard |
---|---|---|
BP_TOMCAT_CONTEXT_PATH |
Het contextpad waar de toepassing is gekoppeld. | Standaardwaarden leeg (ROOT ) |
BP_TOMCAT_EXT_CONF_SHA256 |
De SHA256-hash van het externe configuratiepakket. | |
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED |
Als deze instelling is ingesteld true , wordt het Buildpack niet geconfigureerd org.apache.tomcat.util.digester.EnvironmentPropertySource . Deze configuratieoptie wordt toegevoegd ter ondersteuning van het laden van de configuratie vanuit omgevingsvariabelen en deze te raadplegen in Tomcat-configuratiebestanden. |
|
BP_TOMCAT_EXT_CONF_STRIP |
Het aantal mapniveaus dat moet worden verwijderd uit het externe configuratiepakket. | 0 |
BP_TOMCAT_EXT_CONF_URI |
De download-URI van het externe configuratiepakket. | |
BP_TOMCAT_EXT_CONF_VERSION |
De versie van het externe configuratiepakket. | |
BP_TOMCAT_VERSION |
Wordt gebruikt om een specifieke Tomcat-versie te configureren. Ondersteunde Tomcat-versies zijn 8, 9 en 10. | 9.* |
Cloud Build Service configureren
Hier volgt een overzicht van de omgevingsvariabelen die worden gebruikt voor het configureren van een Cloud Build-service:
Omgevingsvariabele bouwen | Beschrijving | Standaard |
---|---|---|
ORYX_DISABLE_TELEMETRY |
Hiermee bepaalt u of telemetrieverzameling al dan niet moet worden uitgeschakeld. | false |
Omgevingsvariabelen voor Java-build configureren
Notitie
Als u de volgende CLI-opdrachten wilt uitvoeren, gebruikt u de extensieversie 0.3.47
van Container Apps of hoger. Gebruik de az extension add --name containerapp --upgrade --allow-preview
opdracht om de nieuwste versie te installeren.
U kunt omgevingsvariabelen voor Java-build configureren wanneer u de broncode van de Java-toepassing implementeert via de CLI-opdracht az containerapp up
, az containerapp create
of az containerapp update
:
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>
Het build-env-vars
argument is een lijst met omgevingsvariabelen voor de build, door spaties gescheiden waarden in key=value
indeling. Hier volgt een voorbeeldlijst die u als variabelen kunt doorgeven:
BP_JVM_VERSION=21 BP_MAVEN_VERSION=4 "BP_MAVEN_BUILD_ARGUMENTS=-Dmaven.test.skip=true --no-transfer-progress package"
U kunt ook de java-omgevingsvariabelen configureren wanneer u GitHub Actions instelt met Azure CLI in Azure Container Apps.
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>