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 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>