Criar variáveis de ambiente para Java em Aplicativos de Contêiner do Azure (visualização)
Os Aplicativos de Contêiner do Azure usam Buildpacks para criar automaticamente uma imagem de contêiner que permite implantar a partir do código-fonte diretamente na nuvem. Para assumir o controle da configuração da compilação, você pode usar variáveis de ambiente para personalizar partes da compilação, como JDK, Maven e Tomcat. O artigo a seguir mostra como configurar variáveis de ambiente para ajudá-lo a assumir o controle sobre compilações que criam automaticamente um contêiner para você.
Variáveis de ambiente de construção Java suportadas
Configurar o JDK
Os aplicativos de contêiner usam o Microsoft Build do OpenJDK para criar código-fonte e como o ambiente de tempo de execução. Quatro versões LTS JDK são suportadas: 8, 11, 17 e 21.
Para a compilação do código-fonte, a versão padrão é JDK 17.
Para uma compilação de arquivo JAR, a versão JDK é lida do local
META-INF\MANIFEST.MF
do arquivo no JAR, mas usa a versão padrão do JDK 17 se a versão especificada não estiver disponível.
Aqui está uma lista das variáveis de ambiente usadas para configurar o JDK:
Variável de ambiente | Description | Predefinido |
---|---|---|
BP_JVM_VERSION |
Controla a versão da JVM. | 17 |
Configurar o Maven
O Container Apps suporta a criação de aplicativos baseados no Maven a partir do código-fonte.
Aqui está uma lista das variáveis de ambiente usadas para configurar o Maven:
Variável de ambiente de construção | Description | Predefinido |
---|---|---|
BP_MAVEN_VERSION |
Define a versão principal do Maven. Como o Buildpacks envia apenas uma única versão de cada linha suportada, as atualizações para o buildpack podem alterar a versão exata do Maven instalada. Se você precisar de uma versão secundária/patch específica do Maven, use o invólucro Maven. | 3 |
BP_MAVEN_BUILD_ARGUMENTS |
Define os argumentos passados para o Maven. O --batch-mode é prepended para a lista de argumentos em ambientes sem um TTY. |
-Dmaven.test.skip=true --no-transfer-progress package |
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS |
Define argumentos extras usados (por exemplo, -DskipJavadoc anexados a BP_MAVEN_BUILD_ARGUMENTS ) para passar para o Maven. |
|
BP_MAVEN_ACTIVE_PROFILES |
Lista separada por vírgulas de perfis ativos passados para o Maven. | |
BP_MAVEN_BUILT_MODULE |
Designa o artefato do aplicativo que contém o módulo. Por padrão, a compilação aparece no módulo raiz. | |
BP_MAVEN_BUILT_ARTIFACT |
Localização do artefato de aplicativo construído. Este valor substitui a BP_MAVEN_BUILT_MODULE variável. Você pode corresponder a um único arquivo, vários arquivos ou um diretório por meio de um ou mais padrões separados por espaço. |
target/*.[ejw]ar |
BP_MAVEN_POM_FILE |
Especifica um local personalizado para o arquivo pom.xml do projeto. Esse valor é relativo à raiz do projeto (por exemplo, /workspace). | pom.xml |
BP_MAVEN_DAEMON_ENABLED |
Aciona a instalação e configuração do Apache maven-mvnd em vez do Maven. Defina esse valor como true se quiser para o Maven Daemon. |
false |
BP_MAVEN_SETTINGS_PATH |
Especifica um local personalizado para o arquivo settings.xml do Maven. | |
BP_INCLUDE_FILES |
Colon lista separada de padrões glob para corresponder aos arquivos de origem. Qualquer arquivo correspondente é mantido na imagem final. | |
BP_EXCLUDE_FILES |
Colon lista separada de padrões glob para corresponder aos arquivos de origem. Qualquer ficheiro correspondente é removido da imagem final. Todos os padrões de inclusão são aplicados primeiro, e você pode usar "excluir padrões" para reduzir os arquivos incluídos na compilação. | |
BP_JAVA_INSTALL_NODE |
Controle se um Buildpack separado instala ou não o Yarn e o Node.js. Se definido como true , o Buildpack verifica a raiz do aplicativo ou o caminho definido por BP_NODE_PROJECT_PATH . O caminho do projeto procura um arquivo yarn.lock , que requer a instalação do Yarn e do Node.js. Se houver um arquivo package.json , a compilação requer apenas Node.js. |
false |
BP_NODE_PROJECT_PATH |
Direcione o subdiretório do projeto para procurar arquivos package.json e yarn.lock . |
Configurar o Tomcat
O Container Apps suporta a execução de arquivos war no servidor de aplicativos Tomcat.
Aqui está uma lista das variáveis de ambiente usadas para configurar o Tomcat:
Variável de ambiente de construção | Description | Predefinido |
---|---|---|
BP_TOMCAT_CONTEXT_PATH |
O caminho de contexto onde o aplicativo é montado. | O padrão é vazio (ROOT ) |
BP_TOMCAT_EXT_CONF_SHA256 |
O hash SHA256 do pacote de configuração externa. | |
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED |
Quando definido como true , o Buildpack não configura org.apache.tomcat.util.digester.EnvironmentPropertySource o . Essa opção de configuração é adicionada para suportar o carregamento de configuração de variáveis de ambiente e a referência a elas em arquivos de configuração do Tomcat. |
|
BP_TOMCAT_EXT_CONF_STRIP |
O número de níveis de diretório a serem removidos do pacote de configuração externo. | 0 |
BP_TOMCAT_EXT_CONF_URI |
O URI de download do pacote de configuração externa. | |
BP_TOMCAT_EXT_CONF_VERSION |
A versão do pacote de configuração externa. | |
BP_TOMCAT_VERSION |
Usado para configurar uma versão específica do Tomcat. As versões suportadas do Tomcat incluem 8, 9 e 10. | 9.* |
Configurar o serviço Cloud Build
Aqui está uma lista das variáveis de ambiente usadas para configurar um Cloud Build Service:
Variável de ambiente de construção | Description | Predefinido |
---|---|---|
ORYX_DISABLE_TELEMETRY |
Controla se a coleta de telemetria deve ou não ser desabilitada. | false |
Como configurar variáveis de ambiente de construção Java
Nota
Para executar os seguintes comandos da CLI, use a versão da extensão Container Apps ou 0.3.47
superior. Use o az extension add --name containerapp --upgrade --allow-preview
comando para instalar a versão mais recente.
Você pode configurar variáveis de ambiente de construção Java ao implementar o código-fonte do aplicativo Java por meio do comando az containerapp up
CLI , 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>
O build-env-vars
argumento é uma lista de variáveis de ambiente para a compilação, valores separados por espaço no key=value
formato. Aqui está uma lista de exemplo que você pode passar como variáveis:
BP_JVM_VERSION=21 BP_MAVEN_VERSION=4 "BP_MAVEN_BUILD_ARGUMENTS=-Dmaven.test.skip=true --no-transfer-progress package"
Você também pode configurar as variáveis de ambiente de compilação Java ao configurar as Ações do GitHub com a CLI do Azure em Aplicativos de Contêiner do 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>