Azure Container Apps'te Java için ortam değişkenleri oluşturma (önizleme)

Azure Container Apps, kaynak kodunuzdan doğrudan buluta dağıtım yapmanızı sağlayan bir kapsayıcı görüntüsünü otomatik olarak oluşturmak için Buildpacks'i kullanır. Derleme yapılandırmanızın denetimini almak için ortam değişkenlerini kullanarak derlemenizin JDK, Maven ve Tomcat gibi bölümlerini özelleştirebilirsiniz. Aşağıdaki makalede, sizin için otomatik olarak kapsayıcı oluşturan derlemeler üzerinde denetim sahibi olmanıza yardımcı olmak için ortam değişkenlerini nasıl yapılandıracağınız gösterilmektedir.

Desteklenen Java derleme ortamı değişkenleri

JDK'yi yapılandırma

Container Apps, kaynak kodu oluşturmak ve çalışma zamanı ortamı olarak OpenJDK'nin Microsoft Derlemesini kullanır. Dört LTS JDK sürümü desteklenir: 8, 11, 17 ve 21.

  • Kaynak kodu derlemesi için varsayılan sürüm JDK 17'dir.

  • JAR dosyası derlemesi için JDK sürümü JAR'daki dosya konumundan META-INF\MANIFEST.MF okunur, ancak belirtilen sürüm kullanılamıyorsa varsayılan JDK sürüm 17'yi kullanır.

JDK'yi yapılandırmak için kullanılan ortam değişkenlerinin listesi aşağıdadır:

Ortam değişkeni Açıklama Varsayılan
BP_JVM_VERSION JVM sürümünü denetler. 17

Maven'ı yapılandırma

Container Apps, kaynaktan Maven tabanlı uygulamalar derlemeyi destekler.

Maven'ı yapılandırmak için kullanılan ortam değişkenlerinin listesi aşağıdadır:

Ortam değişkeni oluşturma Açıklama Varsayılan
BP_MAVEN_VERSION Ana Maven sürümünü ayarlar. Buildpack'ler desteklenen her satırın yalnızca tek bir sürümünü yüklediğinden, derleme paketindeki güncelleştirmeler Maven'ın yüklü tam sürümünü değiştirebilir. Maven'in belirli bir ikincil/yama sürümüne ihtiyacınız varsa, bunun yerine Maven sarmalayıcısını kullanın. 3
BP_MAVEN_BUILD_ARGUMENTS Maven'a geçirilen bağımsız değişkenleri tanımlar. --batch-mode, TTY içermeyen ortamlarda bağımsız değişken listesine eklenir. -Dmaven.test.skip=true --no-transfer-progress package
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS Maven'a geçirmek için kullanılan ek bağımsız değişkenleri (örneğin, -DskipJavadoc sonuna BP_MAVEN_BUILD_ARGUMENTSeklenir) tanımlar.
BP_MAVEN_ACTIVE_PROFILES Maven'a geçirilen etkin profillerin virgülle ayrılmış listesi.
BP_MAVEN_BUILT_MODULE Modülü içeren uygulama yapıtını gösterir. Varsayılan olarak, derleme kök modülde görünür.
BP_MAVEN_BUILT_ARTIFACT Yerleşik uygulama yapıtı konumu. Bu değer değişkenin yerini alır BP_MAVEN_BUILT_MODULE . Tek bir dosyayı, birden çok dosyayı veya dizini bir veya daha fazla boşlukla ayrılmış desenler aracılığıyla eşleştirebilirsiniz. target/*.[ejw]ar
BP_MAVEN_POM_FILE Projenin pom.xml dosyasının özel konumunu belirtir. Bu değer projenin köküne göredir (örneğin, /workspace). pom.xml
BP_MAVEN_DAEMON_ENABLED Maven yerine Apache maven-mvnd yüklemesini ve yapılandırmasını tetikler. Maven Daemon'ı kullanmak istiyorsanız bu değeri true olarak ayarlayın. false
BP_MAVEN_SETTINGS_PATH Maven'ın settings.xml dosyasının özel konumunu belirtir.
BP_INCLUDE_FILES Kaynak dosyaları eşleştirmek için glob desenlerinin iki nokta üst üste ayrılmış listesi. Eşleşen tüm dosyalar son görüntüde tutulur.
BP_EXCLUDE_FILES Kaynak dosyaları eşleştirmek için glob desenlerinin iki nokta üst üste ayrılmış listesi. Eşleşen tüm dosyalar son görüntüden kaldırılır. Tüm ekleme desenleri önce uygulanır ve derlemeye dahil edilen dosyaları azaltmak için "dışlama desenlerini" kullanabilirsiniz.
BP_JAVA_INSTALL_NODE Ayrı bir Buildpack'in Yarn ve Node.js yükleyip yüklemediğini kontrol edin. olarak ayarlanırsa true, Buildpack tarafından BP_NODE_PROJECT_PATHayarlanan uygulama kökünü veya yolunu denetler. Proje yolu, Yarn ve Node.js yüklenmesini gerektiren yarn.lock dosyasını arar. package.json bir dosya varsa derleme yalnızca Node.js gerektirir. false
BP_NODE_PROJECT_PATH proje alt dizinini package.json ve yarn.lock dosyalarını aramaya yönlendirin.

Tomcat'i yapılandırma

Container Apps, Tomcat uygulama sunucusunda savaş dosyası çalıştırmayı destekler.

Tomcat'i yapılandırmak için kullanılan ortam değişkenlerinin listesi aşağıdadır:

Ortam değişkeni oluşturma Açıklama Varsayılan
BP_TOMCAT_CONTEXT_PATH Uygulamanın bağlandığı bağlam yolu. Varsayılan olarak boş (ROOT) olur
BP_TOMCAT_EXT_CONF_SHA256 Dış yapılandırma paketinin SHA256 karması.
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED olarak trueayarlandığında Buildpack yapılandırılmaz org.apache.tomcat.util.digester.EnvironmentPropertySource. Bu yapılandırma seçeneği, ortam değişkenlerinden yapılandırma yüklemeyi ve Bunlara Tomcat yapılandırma dosyalarında başvurmayı desteklemek için eklenir.
BP_TOMCAT_EXT_CONF_STRIP Dış yapılandırma paketinden çıkarıla dizin düzeylerinin sayısı. 0
BP_TOMCAT_EXT_CONF_URI Dış yapılandırma paketinin indirme URI'si.
BP_TOMCAT_EXT_CONF_VERSION Dış yapılandırma paketinin sürümü.
BP_TOMCAT_VERSION Belirli bir Tomcat sürümünü yapılandırmak için kullanılır. Desteklenen Tomcat sürümleri 8, 9 ve 10'dır. 9.*

Bulut Derleme Hizmetini Yapılandırma

Bulut Derleme Hizmeti'ni yapılandırmak için kullanılan ortam değişkenlerinin listesi aşağıdadır:

Ortam değişkeni oluşturma Açıklama Varsayılan
ORYX_DISABLE_TELEMETRY Telemetri koleksiyonunun devre dışı bırakılıp bırakılmayacağını denetler. false

Java derleme ortamı değişkenlerini yapılandırma

Not

Aşağıdaki CLI komutlarını çalıştırmak için Container Apps uzantısı sürümünü 0.3.47 veya üzerini kullanın. az extension add --name containerapp --upgrade --allow-preview En son sürümü yüklemek için komutunu kullanın.

Java uygulama kaynak kodunu CLI komutu az containerapp up, az containerapp createveya az containerapp updatearacılığıyla dağıttığınızda Java derleme ortamı değişkenlerini yapılandırabilirsiniz:

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 Bağımsız değişken, biçim olarak boşlukla ayrılmış derleme değerleri için ortam değişkenlerinin key=value listesidir. Aşağıda değişken olarak geçirebileceğiniz örnek bir liste verilmiştir:

BP_JVM_VERSION=21 BP_MAVEN_VERSION=4 "BP_MAVEN_BUILD_ARGUMENTS=-Dmaven.test.skip=true --no-transfer-progress package"

Azure Container Apps'te Azure CLI ile GitHub Actions'ı ayarlarken Java derleme ortamı değişkenlerini de yapılandırabilirsiniz.

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>

Sonraki adımlar