Tworzenie zmiennych środowiskowych dla języka Java w usłudze Azure Container Apps (wersja zapoznawcza)
Usługa Azure Container Apps używa pakietu Buildpack do automatycznego tworzenia obrazu kontenera, który umożliwia wdrażanie z kodu źródłowego bezpośrednio w chmurze. Aby przejąć kontrolę nad konfiguracją kompilacji, możesz użyć zmiennych środowiskowych, aby dostosować części kompilacji, takie jak zestaw JDK, Maven i Tomcat. W poniższym artykule pokazano, jak skonfigurować zmienne środowiskowe, aby ułatwić przejęcie kontroli nad kompilacjami, które automatycznie tworzą kontener.
Obsługiwane zmienne środowiskowe kompilacji języka Java
Konfigurowanie zestawu JDK
Usługa Container Apps używa zestawu Microsoft Build zestawu OpenJDK do kompilowania kodu źródłowego i środowiska uruchomieniowego. Obsługiwane są cztery wersje LTS JDK: 8, 11, 17 i 21.
W przypadku kompilacji kodu źródłowego domyślna wersja to JDK 17.
W przypadku kompilacji pliku JAR wersja zestawu JDK jest odczytywana z lokalizacji
META-INF\MANIFEST.MF
pliku w pliku JAR, ale używa domyślnej wersji JDK w wersji 17, jeśli określona wersja jest niedostępna.
Oto lista zmiennych środowiskowych używanych do konfigurowania zestawu JDK:
Zmienna środowiskowa | opis | Wartość domyślna |
---|---|---|
BP_JVM_VERSION |
Steruje wersją maszyny JVM. | 17 |
Konfigurowanie narzędzia Maven
Usługa Container Apps obsługuje tworzenie aplikacji opartych na narzędziu Maven ze źródła.
Oto lista zmiennych środowiskowych używanych do konfigurowania programu Maven:
Kompilowanie zmiennej środowiskowej | opis | Wartość domyślna |
---|---|---|
BP_MAVEN_VERSION |
Ustawia główną wersję programu Maven. Ponieważ pakiety Buildpacks są dostarczane tylko w jednej wersji każdego obsługiwanego wiersza, aktualizacje pakietu buildpack mogą zmienić dokładną wersję zainstalowanego narzędzia Maven. Jeśli potrzebujesz konkretnej pomocniczej/poprawkowej wersji narzędzia Maven, zamiast tego użyj otoki Maven. | 3 |
BP_MAVEN_BUILD_ARGUMENTS |
Definiuje argumenty przekazane do narzędzia Maven. Element --batch-mode jest poprzedzany listą argumentów w środowiskach bez TTY. |
-Dmaven.test.skip=true --no-transfer-progress package |
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS |
Definiuje dodatkowe argumenty używane (na przykład -DskipJavadoc dołączone do BP_MAVEN_BUILD_ARGUMENTS elementu ) do przekazania do narzędzia Maven. |
|
BP_MAVEN_ACTIVE_PROFILES |
Rozdzielona przecinkami lista aktywnych profilów przekazanych do programu Maven. | |
BP_MAVEN_BUILT_MODULE |
Wyznacza artefakt aplikacji zawierający moduł. Domyślnie kompilacja wygląda w module głównym. | |
BP_MAVEN_BUILT_ARTIFACT |
Lokalizacja utworzonego artefaktu aplikacji. Ta wartość zastępuje zmienną BP_MAVEN_BUILT_MODULE . Można dopasować pojedynczy plik, wiele plików lub katalog za pomocą jednego lub większej liczby wzorców rozdzielonych spacjami. |
target/*.[ejw]ar |
BP_MAVEN_POM_FILE |
Określa lokalizację niestandardową do pliku pom.xml projektu. Ta wartość jest względna względem katalogu głównego projektu (na przykład /workspace). | pom.xml |
BP_MAVEN_DAEMON_ENABLED |
Wyzwala instalację i konfigurację oprogramowania Apache maven-mvnd zamiast narzędzia Maven. Ustaw tę wartość na true wartość , jeśli chcesz użyć demona Maven. |
false |
BP_MAVEN_SETTINGS_PATH |
Określa lokalizację niestandardową pliku settings.xml narzędzia Maven. | |
BP_INCLUDE_FILES |
Rozdzielona dwukropkiem lista wzorców glob w celu dopasowania do plików źródłowych. Wszystkie dopasowane pliki są zachowywane na obrazie końcowym. | |
BP_EXCLUDE_FILES |
Rozdzielona dwukropkiem lista wzorców glob w celu dopasowania do plików źródłowych. Wszystkie dopasowane pliki zostaną usunięte z obrazu końcowego. Wszystkie wzorce dołączania są stosowane jako pierwsze i można użyć opcji "wyklucz wzorce", aby zmniejszyć liczbę plików zawartych w kompilacji. | |
BP_JAVA_INSTALL_NODE |
Określ, czy oddzielny pakiet Buildpack instaluje Yarn i Node.js. Jeśli ustawiono wartość true , pakiet Buildpack sprawdza katalog główny aplikacji lub ścieżkę ustawioną przez BP_NODE_PROJECT_PATH . Ścieżka projektu szuka pliku yarn.lock , który wymaga instalacji usługi Yarn i Node.js. Jeśli istnieje plik package.json , kompilacja wymaga tylko Node.js. |
false |
BP_NODE_PROJECT_PATH |
Przekierowuj podkatalog projektu, aby wyszukać pliki package.json i yarn.lock . |
Konfigurowanie serwera Tomcat
Usługa Container Apps obsługuje uruchamianie pliku war na serwerze aplikacji Tomcat.
Oto lista zmiennych środowiskowych używanych do konfigurowania serwera Tomcat:
Kompilowanie zmiennej środowiskowej | opis | Wartość domyślna |
---|---|---|
BP_TOMCAT_CONTEXT_PATH |
Ścieżka kontekstu, w której jest instalowana aplikacja. | Wartości domyślne do pustej (ROOT ) |
BP_TOMCAT_EXT_CONF_SHA256 |
Skrót SHA256 pakietu konfiguracji zewnętrznej. | |
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED |
W przypadku ustawienia na true wartość pakiet Buildpack nie konfiguruje org.apache.tomcat.util.digester.EnvironmentPropertySource elementu . Ta opcja konfiguracji jest dodawana do obsługi ładowania konfiguracji ze zmiennych środowiskowych i odwoływania się do nich w plikach konfiguracji serwera Tomcat. |
|
BP_TOMCAT_EXT_CONF_STRIP |
Liczba poziomów katalogu do usuwania z zewnętrznego pakietu konfiguracji. | 0 |
BP_TOMCAT_EXT_CONF_URI |
Identyfikator URI pobierania pakietu konfiguracji zewnętrznej. | |
BP_TOMCAT_EXT_CONF_VERSION |
Wersja zewnętrznego pakietu konfiguracji. | |
BP_TOMCAT_VERSION |
Służy do konfigurowania określonej wersji serwera Tomcat. Obsługiwane wersje serwera Tomcat obejmują 8, 9 i 10. | 9.* |
Konfigurowanie usługi Cloud Build Service
Oto lista zmiennych środowiskowych używanych do konfigurowania usługi Cloud Build Service:
Kompilowanie zmiennej środowiskowej | opis | Wartość domyślna |
---|---|---|
ORYX_DISABLE_TELEMETRY |
Określa, czy wyłączyć zbieranie danych telemetrycznych. | false |
Jak skonfigurować zmienne środowiskowe kompilacji języka Java
Uwaga
Aby uruchomić następujące polecenia interfejsu wiersza polecenia, użyj wersji rozszerzenia Container Apps lub nowszej 0.3.47
. Użyj polecenia , az extension add --name containerapp --upgrade --allow-preview
aby zainstalować najnowszą wersję.
Zmienne środowiskowe kompilacji języka Java można skonfigurować podczas wdrażania kodu źródłowego aplikacji Java za pomocą polecenia interfejsu wiersza polecenia az containerapp up
, az containerapp create
lub 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>
Argument build-env-vars
to lista zmiennych środowiskowych dla wartości rozdzielanych spacjami kompilacji w key=value
formacie. Oto przykładowa lista, którą można przekazać jako zmienne:
BP_JVM_VERSION=21 BP_MAVEN_VERSION=4 "BP_MAVEN_BUILD_ARGUMENTS=-Dmaven.test.skip=true --no-transfer-progress package"
Zmienne środowiskowe kompilacji języka Java można również skonfigurować podczas konfigurowania funkcji GitHub Actions za pomocą interfejsu wiersza polecenia platformy Azure w usłudze 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>