Skapa miljövariabler för Java i Azure Container Apps (förhandsversion)
Azure Container Apps använder Buildpacks för att automatiskt skapa en containeravbildning som gör att du kan distribuera från källkoden direkt till molnet. Om du vill ta kontroll över byggkonfigurationen kan du använda miljövariabler för att anpassa delar av ditt bygge som JDK, Maven och Tomcat. Följande artikel visar hur du konfigurerar miljövariabler som hjälper dig att ta kontroll över versioner som automatiskt skapar en container åt dig.
Java-miljövariabler som stöds
Konfigurera JDK
Container Apps använder Microsoft Build of OpenJDK för att skapa källkod och som körningsmiljö. Fyra LTS JDK-versioner stöds: 8, 11, 17 och 21.
För källkodsversion är standardversionen JDK 17.
För en JAR-filversion läss JDK-versionen från filplatsen
META-INF\MANIFEST.MF
i JAR-filen, men använder JDK-standardversionen 17 om den angivna versionen inte är tillgänglig.
Här är en lista över de miljövariabler som används för att konfigurera JDK:
Miljövariabel | beskrivning | Standard |
---|---|---|
BP_JVM_VERSION |
Styr JVM-versionen. | 17 |
Konfigurera Maven
Container Apps har stöd för att skapa Maven-baserade program från källan.
Här är en lista över de miljövariabler som används för att konfigurera Maven:
Skapa miljövariabel | beskrivning | Standard |
---|---|---|
BP_MAVEN_VERSION |
Anger maven-huvudversionen. Eftersom Buildpacks endast levererar en enda version av varje rad som stöds kan uppdateringar av buildpack ändra den exakta versionen av Maven installerad. Om du behöver en specifik del-/korrigeringsversion av Maven använder du Maven-omslutningen i stället. | 3 |
BP_MAVEN_BUILD_ARGUMENTS |
Definierar argumenten som skickas till Maven. --batch-mode Läggs till i argumentlistan i miljöer utan TTY. |
-Dmaven.test.skip=true --no-transfer-progress package |
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS |
Definierar extra argument som används (till exempel -DskipJavadoc läggs till BP_MAVEN_BUILD_ARGUMENTS ) för att skickas till Maven. |
|
BP_MAVEN_ACTIVE_PROFILES |
Kommaavgränsad lista över aktiva profiler som skickas till Maven. | |
BP_MAVEN_BUILT_MODULE |
Anger programartefakt som innehåller modulen. Som standard ser bygget ut i rotmodulen. | |
BP_MAVEN_BUILT_ARTIFACT |
Platsen för den skapade programartefakten. Det här värdet ersätter variabeln BP_MAVEN_BUILT_MODULE . Du kan matcha en enskild fil, flera filer eller en katalog via ett eller flera blankstegsavgränsade mönster. |
target/*.[ejw]ar |
BP_MAVEN_POM_FILE |
Anger en anpassad plats för projektets pom.xml fil. Det här värdet är relativt till projektets rot (till exempel /workspace). | pom.xml |
BP_MAVEN_DAEMON_ENABLED |
Utlöser installation och konfiguration av Apache maven-mvnd i stället för Maven. Ange det här värdet till true om du vill ha Maven Daemon. |
false |
BP_MAVEN_SETTINGS_PATH |
Anger en anpassad plats för Mavens settings.xml-fil . | |
BP_INCLUDE_FILES |
Kolonavgränsad lista över globmönster som matchar källfiler. Alla matchade filer behålls i den slutliga avbildningen. | |
BP_EXCLUDE_FILES |
Kolonavgränsad lista över globmönster som matchar källfiler. Alla matchade filer tas bort från den slutliga avbildningen. Alla inkluderingsmönster tillämpas först och du kan använda "exkludera mönster" för att minska de filer som ingår i versionen. | |
BP_JAVA_INSTALL_NODE |
Kontrollera om en separat Buildpack installerar Yarn och Node.js. Om värdet är inställt true på kontrollerar Buildpack appens rot eller sökväg som angetts av BP_NODE_PROJECT_PATH . Projektsökvägen söker efter antingen en yarn.lock-fil , som kräver installation av Yarn och Node.js. Om det finns en package.json fil kräver bygget bara Node.js. |
false |
BP_NODE_PROJECT_PATH |
Dirigera projektunderkatalogen till att leta efter package.json - och yarn.lock-filer . |
Konfigurera Tomcat
Container Apps stöder körning av war-fil i Tomcat-programservern.
Här är en lista över de miljövariabler som används för att konfigurera Tomcat:
Skapa miljövariabel | beskrivning | Standard |
---|---|---|
BP_TOMCAT_CONTEXT_PATH |
Kontextsökvägen där programmet monteras. | Standardvärdet är tomt (ROOT ) |
BP_TOMCAT_EXT_CONF_SHA256 |
SHA256-hashen för det externa konfigurationspaketet. | |
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED |
När det är inställt på true konfigurerar org.apache.tomcat.util.digester.EnvironmentPropertySource inte Buildpack . Det här konfigurationsalternativet läggs till för att stödja inläsning av konfiguration från miljövariabler och refererar till dem i Tomcat-konfigurationsfiler. |
|
BP_TOMCAT_EXT_CONF_STRIP |
Antalet katalognivåer som ska skalas från det externa konfigurationspaketet. | 0 |
BP_TOMCAT_EXT_CONF_URI |
Hämtnings-URI för det externa konfigurationspaketet. | |
BP_TOMCAT_EXT_CONF_VERSION |
Versionen av det externa konfigurationspaketet. | |
BP_TOMCAT_VERSION |
Används för att konfigurera en specifik Tomcat-version. Tomcat-versioner som stöds är 8, 9 och 10. | 9.* |
Konfigurera Cloud Build Service
Här är en lista över de miljövariabler som används för att konfigurera en Cloud Build-tjänst:
Skapa miljövariabel | beskrivning | Standard |
---|---|---|
ORYX_DISABLE_TELEMETRY |
Styr om telemetrisamlingen ska inaktiveras eller inte. | false |
Så här konfigurerar du Miljövariabler för Java-kompileringar
Kommentar
Om du vill köra följande CLI-kommandon använder du Container Apps-tilläggsversionen 0.3.47
eller senare. az extension add --name containerapp --upgrade --allow-preview
Använd kommandot för att installera den senaste versionen.
Du kan konfigurera Miljövariabler för Java-kompilering när du distribuerar Java-programkällkod via CLI-kommandot az containerapp up
, az containerapp create
eller 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>
Argumentet build-env-vars
är en lista över miljövariabler för bygget, blankstegsavgränsade värden i key=value
format. Här är en exempellista som du kan skicka in som variabler:
BP_JVM_VERSION=21 BP_MAVEN_VERSION=4 "BP_MAVEN_BUILD_ARGUMENTS=-Dmaven.test.skip=true --no-transfer-progress package"
Du kan också konfigurera Miljövariabler för Java-kompileringar när du konfigurerar GitHub Actions med Azure CLI i 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>