Udostępnij za pośrednictwem


Tworzenie zmiennych środowiskowych dla języka Java w usłudze Azure Container Apps

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_ARGUMENTSelementu ) 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 truewartość pakiet Buildpack nie konfiguruje org.apache.tomcat.util.digester.EnvironmentPropertySourceelementu . 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

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 createlub 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>

Następne kroki