Dela via


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 truepå 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å truekonfigurerar org.apache.tomcat.util.digester.EnvironmentPropertySourceinte 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 createeller 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>

Nästa steg