Partager via


Variables d’environnement de build pour Java dans Azure Container Apps

Azure Container Apps utilise Buildpacks pour créer automatiquement une image conteneur qui vous permet de déployer à partir de votre code source directement dans le cloud. Pour contrôler la configuration de votre build, vous pouvez utiliser des variables d’environnement pour en personnaliser des parties 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. Les quatre versions JDK LTS suivantes sont prises en charge : 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 la liste des variables d’environnement utilisées 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 la liste des variables d’environnement utilisées 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/corrective spécifique de Maven, utilisez plutôt le wrapper Maven. 3
BP_MAVEN_BUILD_ARGUMENTS Définit les arguments transmis à Maven. La valeur --batch-mode est ajoutée à 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 sur true si vous souhaitez utiliser Maven Daemon. 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 du fichier WAR dans le serveur d’applications Tomcat.

Voici la liste des variables d’environnement utilisées 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 la liste des variables d’environnement utilisées pour configurer un service de génération 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 build Java lorsque vous déployez du code source d’application Java à l’aide de la commande CLI az containerapp up, az containerapp create ou 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 les valeurs de génération, 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