Criar variáveis de ambiente para Java nos Aplicativos de Contêiner no Azure (versão prévia)
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 do build, você pode usar variáveis de ambiente para personalizar partes do seu build, como o JDK, o Maven e o Tomcat. O artigo a seguir mostra como configurar variáveis de ambiente para ajudá-lo a assumir o controle sobre os builds que criam automaticamente um contêiner para você.
Variáveis de ambiente de build do Java com suporte
Configurar o JDK
Os Aplicativos de Contêiner usam o Microsoft Build do OpenJDK para criar o código-fonte e como ambiente de runtime. Há suporte para quatro versões do JDK LTS: 8, 11, 17 e 21.
Para o build de código-fonte, a versão padrão é o JDK 17.
Para um build de arquivo JAR, a versão do JDK é lida do local do arquivo
META-INF\MANIFEST.MF
no JAR, mas usa o JDK padrão versão 17 se a versão especificada não estiver disponível.
Aqui está uma listagem das variáveis de ambiente usadas para configurar o JDK:
Variável de ambiente | Descrição | Padrão |
---|---|---|
BP_JVM_VERSION |
Controla a versão da JVM. | 17 |
Configurar Maven
Os Aplicativos de Contêiner dão suporte à criação de aplicativos baseados em Maven a partir da origem.
Aqui está uma listagem das variáveis de ambiente usadas para configurar o Maven:
Variável de ambiente de build | Descrição | Padrão |
---|---|---|
BP_MAVEN_VERSION |
Define a versão principal do Maven. Como os Buildpacks fornecem apenas uma única versão de cada linha com suporte, as atualizações no 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 wrapper do Maven. | 3 |
BP_MAVEN_BUILD_ARGUMENTS |
Define os argumentos passados para o Maven. O --batch-mode é anexado à lista de argumentos em ambientes sem um TTY. |
-Dmaven.test.skip=true --no-transfer-progress package |
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS |
Define os argumentos extras usados (por exemplo, -DskipJavadoc acrescentado 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, o build é exibido no módulo raiz. | |
BP_MAVEN_BUILT_ARTIFACT |
Local do artefato do aplicativo criado. Esse valor substitui a variável BP_MAVEN_BUILT_MODULE . Você pode combinar 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 de pom.xmldo projeto. Esse valor é relativo à raiz do projeto (por exemplo, /workspace). | pom.xml |
BP_MAVEN_DAEMON_ENABLED |
Dispara a instalação e a configuração do Apache maven-mvnd em vez do Maven. Defina esse valor como true se você quiser o Daemon do Maven. |
false |
BP_MAVEN_SETTINGS_PATH |
Especifica um local personalizado para o arquivo settings.xml do Maven. | |
BP_INCLUDE_FILES |
Lista separada por dois pontos de padrões glob para combinar os arquivos de origem. Qualquer arquivo combinado é mantido na imagem final. | |
BP_EXCLUDE_FILES |
Lista separada por dois pontos de padrões glob para combinar os arquivos de origem. Qualquer arquivo combinado é 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 no build. | |
BP_JAVA_INSTALL_NODE |
Controla se um Buildpack separado instala ou não o Yarn e 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, o build exigirá apenas o Node.js. |
false |
BP_NODE_PROJECT_PATH |
Direcione o subdiretório do projeto para procurar arquivos package.json e yarn.lock. |
Configurar o Tomcat
Os Aplicativos de Contêiner dão suporte à execução de arquivos war no servidor de aplicativos Tomcat.
Aqui está uma listagem das variáveis de ambiente usadas para configurar o Tomcat:
Variável de ambiente de build | Descrição | Padrão |
---|---|---|
BP_TOMCAT_CONTEXT_PATH |
O caminho de contexto onde o aplicativo está montado. | Assume o padrão de vazio (ROOT ) |
BP_TOMCAT_EXT_CONF_SHA256 |
O hash SHA256 do pacote de configuração externo. | |
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED |
Quando definido como true , o Buildpack não configura org.apache.tomcat.util.digester.EnvironmentPropertySource . Essa opção de configuração é adicionada para dar suporte ao carregamento das configurações de variáveis de ambiente e referenciá-las nos arquivos de configuração do Tomcat. |
|
BP_TOMCAT_EXT_CONF_STRIP |
O número de níveis de diretório a serem retirados do pacote de configuração externo. | 0 |
BP_TOMCAT_EXT_CONF_URI |
O URI de download do pacote de configuração externo. | |
BP_TOMCAT_EXT_CONF_VERSION |
A versão do pacote de configuração externo. | |
BP_TOMCAT_VERSION |
Usado para configurar uma versão específica do Tomcat. As versões do Tomcat com suporte incluem 8, 9 e 10. | 9.* |
Configurar o Serviço de Build na Nuvem
Aqui está uma listagem das variáveis de ambiente usadas para configurar um Serviço de Build na Nuvem:
Variável de ambiente de build | Descrição | Padrão |
---|---|---|
ORYX_DISABLE_TELEMETRY |
Controla se a coleta de telemetria deve ou não ser desabilitada. | false |
Como configurar variáveis de ambiente de build do Java
Observação
Para executar os comandos da CLI a seguir, use a versão 0.3.47
de extensão de Aplicativos de Contêiner ou superior. Use o comando az extension add --name containerapp --upgrade --allow-preview
para instalar a versão mais recente.
Você pode configurar variáveis de ambiente de build do Java ao implantar o código-fonte do aplicativo Java por meio do comando da 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>
O argumento build-env-vars
é uma lista de variáveis de ambiente para o build, valores separados por espaço no formato key=value
. Aqui está uma lista de exemplos 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 build do Java ao configurar o GitHub Actions com a CLI do Azure nos 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>