Partager via


Variables d’environnement de build pour Java dans Azure Container Apps (préversion)

Azure Container Apps utilise Buildpacks pour créer automatiquement une image conteneur que vous pouvez utiliser pour déployer votre code source directement dans le cloud. Pour prendre le contrôle de votre configuration de build, utilisez des variables d’environnement pour personnaliser des parties de votre build comme le JDK, Maven et Tomcat. L’article suivant explique comment configurer des variables d’environnement pour vous aider à prendre le contrôle des builds qui créent automatiquement un conteneur pour vous.

Variables d’environnement de build Java prises en charge

Configurer JDK

Container Apps utilise Microsoft Build d’OpenJDK pour générer du code source et comme environnement d’exécution. Le service prend en charge quatre versions JDK LTS : 8, 11, 17 et 21.

  • Pour la génération de code source, la version par défaut est JDK 17.

  • Pour générer un fichier JAR, la version JDK est lue depuis l’emplacement META-INF\MANIFEST.MF du fichier dans le fichier JAR, mais utilise la version par défaut JDK 17 si la version spécifiée n’est pas disponible.

Voici une liste des variables d’environnement que vous pouvez utiliser pour configurer JDK :

Variable d’environnement Description Default
BP_JVM_VERSION Contrôle la version de JVM. 17

Configurer Maven

Container Apps prend en charge la création d’applications basées sur Maven à partir de la source.

Voici une liste des variables d’environnement que vous pouvez utiliser pour configurer Maven :

Variable d’environnement de build Description Default
BP_MAVEN_VERSION Définit la version principale de Maven. Buildpacks ne fournit qu’une seule version de chaque ligne prise en charge, ainsi les mises à jour du Buildpack peuvent modifier la version exacte de Maven installée. Si vous avez besoin d’une version mineure ou corrective spécifique de Maven, utilisez plutôt le wrapper Maven. 3
BP_MAVEN_BUILD_ARGUMENTS Définit les arguments transmis à Maven. L’argument --batch-mode est ajouté à la liste d’arguments dans les environnements sans TTY. -Dmaven.test.skip=true --no-transfer-progress package
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS Définit des arguments supplémentaires utilisés (par exemple, -DskipJavadoc ajoutés à BP_MAVEN_BUILD_ARGUMENTS) à transmettre à Maven.
BP_MAVEN_ACTIVE_PROFILES Liste séparée par des virgules des profils actifs transmis à Maven.
BP_MAVEN_BUILT_MODULE Désigne l’artefact d’application qui contient le module. Par défaut, le build recherche dans le module racine.
BP_MAVEN_BUILT_ARTIFACT Emplacement de l’artefact d’application créée. Cette valeur remplace la variable BP_MAVEN_BUILT_MODULE. Vous pouvez faire correspondre un seul fichier, plusieurs fichiers ou un répertoire par le biais d’un ou plusieurs modèles séparés par des espaces. target/*.[ejw]ar
BP_MAVEN_POM_FILE Spécifie un emplacement personnalisé dans le fichier pom.xml du projet. Cette valeur est relative à la racine du projet (par exemple, /workspace). pom.xml
BP_MAVEN_DAEMON_ENABLED Déclenche l’installation et la configuration d’Apache maven-mvnd au lieu de Maven. Définissez cette valeur true si vous souhaitez utiliser le démon Maven. false
BP_MAVEN_SETTINGS_PATH Spécifie un emplacement personnalisé dans le fichier settings.xml de Maven.
BP_INCLUDE_FILES Liste séparée par des deux-points des modèles Glob à faire correspondre aux fichiers sources. Tout fichier mis en correspondance est conservé dans l’image finale.
BP_EXCLUDE_FILES Liste séparée par des deux-points des modèles Glob à faire correspondre aux fichiers sources. Tout fichier mis en correspondance est supprimé de l’image finale. Tous les modèles d’inclusion (Include) sont appliqués en premier, et vous pouvez utiliser des « modèles d’exclusion (Exclude) » pour réduire les fichiers inclus dans le build.
BP_JAVA_INSTALL_NODE Vérifiez si un Buildpack distinct installe Yarn et Node.js. Si la valeur est définie sur true, le Buildpack vérifie la racine ou le chemin d’accès de l’application défini par BP_NODE_PROJECT_PATH. Le chemin du projet recherche un fichier yarn.lock, qui nécessite l’installation de Yarn et de Node.js. S’il existe un fichier package.json, le build requiert uniquement Node.js. false
BP_NODE_PROJECT_PATH Envoyez des instructions au sous-répertoire du projet pour qu’il recherche des fichiers package.json et yarn.lock.

Configurer Tomcat

Container Apps prend en charge l’exécution d’un fichier WAR dans le serveur d’applications Tomcat.

Voici une liste des variables d’environnement que vous pouvez utiliser pour configurer Tomcat :

Variable d’environnement de build Description Default
BP_TOMCAT_CONTEXT_PATH Chemin d’accès du contexte dans lequel l’application est montée. Vide par défaut (ROOT)
BP_TOMCAT_EXT_CONF_SHA256 Hachage SHA256 du package de configuration externe.
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED Quand la valeur est définie sur true, le Buildpack ne configure pas org.apache.tomcat.util.digester.EnvironmentPropertySource. Cette option de configuration est ajoutée pour prendre en charge le chargement de la configuration à partir de variables d’environnement et le référencement de ces dernières dans les fichiers de configuration Tomcat.
BP_TOMCAT_EXT_CONF_STRIP Nombre de niveaux de répertoires à supprimer du package de configuration externe. 0
BP_TOMCAT_EXT_CONF_URI URI de téléchargement du package de configuration externe.
BP_TOMCAT_EXT_CONF_VERSION Version du package de configuration externe.
BP_TOMCAT_VERSION Utilisé pour configurer une version spécifique de Tomcat. Les versions de Tomcat prises en charge incluent les suivantes : 8, 9 et 10. 9.*

Configurer le service de génération cloud

Voici une liste des variables d’environnement que vous pouvez utiliser pour configurer un service de build cloud :

Variable d’environnement de build Description Default
ORYX_DISABLE_TELEMETRY Contrôle si la collecte de données de télémétrie doit être désactivée. false

Comment configurer des variables d’environnement de build Java

Remarque

Pour exécuter les commandes CLI suivantes, utilisez la version de l’extension Container Apps 0.3.47 ou ultérieure. Utilisez la commande az extension add --name containerapp --upgrade --allow-preview pour installer la dernière version.

Vous pouvez configurer des variables d’environnement de génération Java lorsque vous déployez du code source de l’application Java à l’aide des commandes az containerapp upCLI , az containerapp createou 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>

L’argument build-env-vars est une liste de variables d’environnement pour la compilation, avec des valeurs séparées par des espaces au format key=value. Voici un exemple de liste que vous pouvez transmettre en tant que variables :

BP_JVM_VERSION=21 BP_MAVEN_VERSION=4 "BP_MAVEN_BUILD_ARGUMENTS=-Dmaven.test.skip=true --no-transfer-progress package"

Vous pouvez également configurer les variables d’environnement de build Java lorsque vous configurez GitHub Actions à l’aide d’Azure CLI dans 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>

Étapes suivantes