Создание переменных среды для Java в приложениях контейнеров Azure (предварительная версия)
Статья
Приложения контейнеров Azure используют buildpacks для автоматического создания образа контейнера, который позволяет развертывать из исходного кода непосредственно в облаке. Чтобы контролировать конфигурацию сборки, можно использовать переменные среды для настройки частей сборки, таких как JDK, Maven и Tomcat. В следующей статье показано, как настроить переменные среды для контроля над сборками, которые автоматически создают контейнер.
Поддерживаемые переменные среды сборки Java
Настройка JDK
Приложения-контейнеры используют Microsoft Build openJDK для создания исходного кода и среды выполнения. Поддерживаются четыре версии JDK LTS: 8, 11, 17 и 21.
Для сборки исходного кода версия по умолчанию — JDK 17.
Для сборки JAR-файла версия JDK считывается из расположения META-INF\MANIFEST.MF файла в JAR-файле, но использует JDK по умолчанию версии 17, если указанная версия недоступна.
Ниже приведен список переменных среды, используемых для настройки JDK:
Переменная среды
Description
По умолч.
BP_JVM_VERSION
Управляет версией JVM.
17
Настройка Maven
Контейнерные приложения поддерживают создание приложений на основе Maven из источника.
Ниже приведен список переменных среды, используемых для настройки Maven:
Создание переменной среды
Description
По умолч.
BP_MAVEN_VERSION
Задает основную версию Maven. Так как Buildpacks поставляет только одну версию каждой поддерживаемой строки, обновления пакета сборки могут изменить точную версию Установленной Maven. Если требуется определенная дополнительная или исправленная версия Maven, используйте вместо этого оболочку Maven.
3
BP_MAVEN_BUILD_ARGUMENTS
Определяет аргументы, переданные Maven. Список --batch-mode аргументов добавляется в список аргументов в средах без TTY.
Определяет дополнительные аргументы, используемые (например, -DskipJavadoc добавленные BP_MAVEN_BUILD_ARGUMENTSв ) для передачи в Maven.
BP_MAVEN_ACTIVE_PROFILES
Разделенный запятыми список активных профилей, передаваемых в Maven.
BP_MAVEN_BUILT_MODULE
Указывает артефакт приложения, содержащий модуль. По умолчанию сборка выглядит в корневом модуле.
BP_MAVEN_BUILT_ARTIFACT
Расположение созданного артефакта приложения. Это значение заменяет BP_MAVEN_BUILT_MODULE переменную. Можно сопоставить один файл, несколько файлов или каталог с помощью одного или нескольких разделенных пробелов.
target/*.[ejw]ar
BP_MAVEN_POM_FILE
Указывает настраиваемое расположение файла pom.xml проекта. Это значение относительно корневого каталога проекта (например, /workspace).
pom.xml
BP_MAVEN_DAEMON_ENABLED
Активирует установку и настройку Apache maven-mvnd вместо Maven. Присвойте этому значению значение true , если требуется управляющей программе Maven.
false
BP_MAVEN_SETTINGS_PATH
Указывает настраиваемое расположение settings.xml файла Maven.
BP_INCLUDE_FILES
Разделенный двоеточием список шаблонов глобов для сопоставления исходных файлов. Любой соответствующий файл сохраняется в окончательном изображении.
BP_EXCLUDE_FILES
Разделенный двоеточием список шаблонов глобов для сопоставления исходных файлов. Любой соответствующий файл удаляется из окончательного образа. Все шаблоны включения применяются сначала, и вы можете использовать "исключить шаблоны" для уменьшения файлов, включенных в сборку.
BP_JAVA_INSTALL_NODE
Управление установкой Yarn и Node.js отдельной сборки. Если задано значение true, сборка проверяет корневой или путь приложения, заданные по параметру BP_NODE_PROJECT_PATH. Путь проекта ищет файл yarn.lock , который требует установки Yarn и Node.js. Если есть файл package.json, сборка требует только Node.js .
false
BP_NODE_PROJECT_PATH
Направляя подкаталог проекта, чтобы искать файлы package.json и yarn.lock .
Настройка Tomcat
Контейнерные приложения поддерживают запуск war-файла на сервере приложений Tomcat.
Ниже приведен список переменных среды, используемых для настройки Tomcat:
Создание переменной среды
Description
По умолч.
BP_TOMCAT_CONTEXT_PATH
Путь контекста, в котором подключено приложение.
Значение по умолчанию пусто (ROOT)
BP_TOMCAT_EXT_CONF_SHA256
Хэш SHA256 внешнего пакета конфигурации.
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED
Если задано значение true, сборка не настраивает org.apache.tomcat.util.digester.EnvironmentPropertySource. Этот параметр конфигурации добавляется для поддержки загрузки конфигурации из переменных среды и ссылки на них в файлах конфигурации Tomcat.
BP_TOMCAT_EXT_CONF_STRIP
Количество уровней каталога для удаления из внешнего пакета конфигурации.
0
BP_TOMCAT_EXT_CONF_URI
URI скачивания внешнего пакета конфигурации.
BP_TOMCAT_EXT_CONF_VERSION
Версия внешнего пакета конфигурации.
BP_TOMCAT_VERSION
Используется для настройки определенной версии Tomcat. Поддерживаемые версии Tomcat включают 8, 9 и 10.
9.*
Настройка службы облачной сборки
Ниже приведен список переменных среды, используемых для настройки облачной службы сборки:
Создание переменной среды
Description
По умолч.
ORYX_DISABLE_TELEMETRY
Определяет, следует ли отключить коллекцию данных телеметрии.
false
Настройка переменных среды сборки Java
Примечание
Чтобы выполнить следующие команды CLI, используйте версию 0.3.47 расширения "Приложения контейнеров" или более позднюю. az extension add --name containerapp --upgrade --allow-preview Используйте команду, чтобы установить последнюю версию.
При развертывании исходного кода приложения Java можно настроить переменные среды сборки Java с помощью команды az containerapp upaz containerapp createCLI или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>
Аргумент build-env-vars — это список переменных среды для сборки, разделенных пробелами значений в key=value формате. Ниже приведен пример списка, который можно передать в виде переменных:
Начните здесь и узнайте, как отслеживать, автоматизировать, настраивать, автоматически масштабировать, защищать и создавать приложения Java в Azure. Как обычно, используйте знакомые вам средства и платформы — Spring, Tomcat, WildFly, JBoss, WebLogic, WebSphere, Maven, Gradle, IntelliJ, Eclipse, Jenkins, Terraform и другие.