Creare variabili di ambiente per Java in App contenitore di Azure (anteprima)
La piattaforma App contenitore di Azure usa Buildpacks per creare automaticamente un'immagine del contenitore che consente di eseguire la distribuzione dal codice sorgente direttamente al cloud. Per assumere il controllo della configurazione di compilazione, è possibile usare le variabili di ambiente per personalizzare parti della compilazione, ad esempio JDK, Maven e Tomcat. L'articolo seguente illustra come configurare le variabili di ambiente per acquisire il controllo sulle compilazioni che creano automaticamente un contenitore.
Variabili di ambiente di compilazione Java supportate
Configurare JDK
La piattaforma App contenitore usa Microsoft Build of OpenJDK per compilare il codice sorgente e come ambiente di runtime. Sono supportate quattro versioni JDK LTS: 8, 11, 17 e 21.
Per la compilazione del codice sorgente, la versione predefinita è JDK 17.
Per una compilazione di file JAR, la versione JDK viene letta dal percorso del file
META-INF\MANIFEST.MF
nel file JAR, ma usa la versione JDK predefinita 17 se la versione specificata non è disponibile.
Ecco un elenco delle variabili di ambiente usate per configurare JDK:
Variabile di ambiente | Descrizione | Default |
---|---|---|
BP_JVM_VERSION |
Controlla la versione di JVM. | 17 |
Configurare Maven
App contenitore supporta la compilazione di applicazioni basate su Maven dall'origine.
Ecco un elenco delle variabili di ambiente usate per configurare Maven:
Variabile di ambiente di compilazione | Descrizione | Default |
---|---|---|
BP_MAVEN_VERSION |
Imposta la versione principale di Maven. Poiché Buildpacks include solo una singola versione di ogni riga supportata, gli aggiornamenti al buildpack possono modificare la versione esatta di Maven installata. Se è necessaria una versione secondaria/patch specifica di Maven, usare invece il wrapper Maven. | 3 |
BP_MAVEN_BUILD_ARGUMENTS |
Definisce gli argomenti passati a Maven. Il valore --batch-mode viene anteposto all'elenco di argomenti in ambienti senza TTY. |
-Dmaven.test.skip=true --no-transfer-progress package |
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS |
Definisce argomenti aggiuntivi usati (ad esempio, -DskipJavadoc accodato a BP_MAVEN_BUILD_ARGUMENTS ) da passare a Maven. |
|
BP_MAVEN_ACTIVE_PROFILES |
Elenco delimitato da virgole dei profili attivi passati a Maven. | |
BP_MAVEN_BUILT_MODULE |
Designa l'artefatto dell'applicazione che contiene il modulo. Per impostazione predefinita, la compilazione cerca nel modulo radice. | |
BP_MAVEN_BUILT_ARTIFACT |
Posizione dell'artefatto dell'applicazione compilata. Questo valore sostituisce la variabile BP_MAVEN_BUILT_MODULE . È possibile trovare una corrispondenza con un singolo file, più file o una directory tramite uno o più criteri separati da spazi. |
target/*.[ejw]ar |
BP_MAVEN_POM_FILE |
Specifica un percorso personalizzato per il file pom.xml del progetto. Questo valore è relativo alla radice del progetto, ad esempio, /workspace. | pom.xml |
BP_MAVEN_DAEMON_ENABLED |
Attiva l'installazione e la configurazione di maven-mvnd per Apache invece di Maven. Impostare questo valore su true se si vuole usare il daemon Maven. |
false |
BP_MAVEN_SETTINGS_PATH |
Specifica un percorso personalizzato per il file settings.xml di Maven. | |
BP_INCLUDE_FILES |
Elenco di criteri GLOB separati da due punti per trovare le corrispondenze con i file di origine. Qualsiasi file corrispondente viene conservato nell'immagine finale. | |
BP_EXCLUDE_FILES |
Elenco di criteri GLOB separati da due punti per trovare le corrispondenze con i file di origine. Qualsiasi file corrispondente viene rimosso dall'immagine finale. Tutti i criteri di inclusione vengono applicati per primi ed è possibile usare "criteri di esclusione" per ridurre i file inclusi nella compilazione. | |
BP_JAVA_INSTALL_NODE |
Consente di controllare se un buildpack separato installa Yarn e Node.js. Se impostato su true , buildpack controlla la radice o il percorso dell'app impostato da BP_NODE_PROJECT_PATH . Il percorso del progetto cerca un file yarn.lock, che richiede l'installazione di Yarn e Node.js. Se è presente un file package.json, la compilazione richiede solo Node.js. |
false |
BP_NODE_PROJECT_PATH |
Consente di richiedere alla sottodirectory del progetto di cercare i file package.json e yarn.lock. |
Configurare Tomcat
La piattaforma App contenitore supporta l'esecuzione di file WAR nel server applicazioni Tomcat.
Ecco un elenco delle variabili di ambiente usate per configurare Tomcat:
Variabile di ambiente di compilazione | Descrizione | Default |
---|---|---|
BP_TOMCAT_CONTEXT_PATH |
Percorso del contesto in cui è montata l'applicazione. | Per impostazione predefinita è vuoto (ROOT ) |
BP_TOMCAT_EXT_CONF_SHA256 |
Hash SHA256 del pacchetto di configurazione esterno. | |
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED |
Se impostato su true , buildpack non configura org.apache.tomcat.util.digester.EnvironmentPropertySource . Questa opzione di configurazione viene aggiunta per supportare il caricamento della configurazione dalle variabili di ambiente e per farvi riferimento nei file di configurazione di Tomcat. |
|
BP_TOMCAT_EXT_CONF_STRIP |
Numero di livelli di directory da rimuovere dal pacchetto di configurazione esterno. | 0 |
BP_TOMCAT_EXT_CONF_URI |
URI di download del pacchetto di configurazione esterno. | |
BP_TOMCAT_EXT_CONF_VERSION |
Versione del pacchetto di configurazione esterno. | |
BP_TOMCAT_VERSION |
Usato per configurare una versione specifica di Tomcat. Le versioni di Tomcat supportate includono 8, 9 e 10. | 9.* |
Configurare il servizio Cloud Build
Ecco un elenco delle variabili di ambiente usate per configurare un servizio Cloud Build:
Variabile di ambiente di compilazione | Descrizione | Default |
---|---|---|
ORYX_DISABLE_TELEMETRY |
Controlla se disabilitare o meno la raccolta di dati di telemetria. | false |
Come configurare le variabili di ambiente di compilazione Java
Nota
Per eseguire i comandi dell'interfaccia della riga di comando seguenti, usare la versione 0.3.47
o successive dell'estensione App contenitore. Usare quindi il comando az extension add --name containerapp --upgrade --allow-preview
per installare la versione più recente.
È possibile configurare le variabili di ambiente di compilazione Java quando si distribuisce il codice sorgente dell'applicazione Java tramite il comando az containerapp up
, az containerapp create
o az containerapp update
dell'interfaccia della riga di comando:
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'argomento build-env-vars
è un elenco di variabili di ambiente per la compilazione, con valori separati da spazi in formato key=value
. Ecco un elenco di esempio che è possibile passare come variabili:
BP_JVM_VERSION=21 BP_MAVEN_VERSION=4 "BP_MAVEN_BUILD_ARGUMENTS=-Dmaven.test.skip=true --no-transfer-progress package"
È anche possibile configurare le variabili di ambiente di compilazione Java durante la configurazione di GitHub Actions con l'interfaccia della riga di comando di Azure in App contenitore di Azure.
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>