Bagikan melalui


Membangun variabel lingkungan untuk Java di Azure Container Apps

Azure Container Apps menggunakan Buildpacks untuk membuat gambar kontainer secara otomatis yang memungkinkan Anda menyebarkan dari kode sumber langsung ke cloud. Untuk mengontrol konfigurasi build, Anda dapat menggunakan variabel lingkungan untuk menyesuaikan bagian build Anda seperti JDK, Maven, dan Tomcat. Artikel berikut menunjukkan kepada Anda cara mengonfigurasi variabel lingkungan untuk membantu Anda mengambil kontrol atas build yang secara otomatis membuat kontainer untuk Anda.

Variabel lingkungan build Java yang didukung

Mengonfigurasi JDK

Aplikasi Kontainer menggunakan Microsoft Build of OpenJDK untuk membangun kode sumber dan sebagai lingkungan runtime. Empat versi LTS JDK didukung: 8, 11, 17 dan 21.

  • Untuk build kode sumber, versi defaultnya adalah JDK 17.

  • Untuk build file JAR, versi JDK dibaca dari lokasi META-INF\MANIFEST.MF file di JAR, tetapi menggunakan JDK default versi 17 jika versi yang ditentukan tidak tersedia.

Berikut adalah daftar variabel lingkungan yang digunakan untuk mengonfigurasi JDK:

Variabel lingkungan Deskripsi Default
BP_JVM_VERSION Mengontrol versi JVM. 17

Mengonfigurasi Maven

Container Apps mendukung pembuatan aplikasi berbasis Maven dari sumber.

Berikut adalah daftar variabel lingkungan yang digunakan untuk mengonfigurasi Maven:

Membangun variabel lingkungan Deskripsi Default
BP_MAVEN_VERSION Mengatur versi Maven utama. Karena Buildpacks hanya mengirimkan satu versi dari setiap baris yang didukung, pembaruan pada buildpack dapat mengubah versi maven yang tepat yang diinstal. Jika Anda memerlukan Maven versi minor/patch tertentu, gunakan pembungkus Maven sebagai gantinya. 3
BP_MAVEN_BUILD_ARGUMENTS Menentukan argumen yang diteruskan ke Maven. --batch-mode ditambahkan ke daftar argumen di lingkungan tanpa TTY. -Dmaven.test.skip=true --no-transfer-progress package
BP_MAVEN_ADDITIONAL_BUILD_ARGUMENTS Menentukan argumen tambahan yang digunakan (misalnya, -DskipJavadoc ditambahkan ke BP_MAVEN_BUILD_ARGUMENTS) untuk diteruskan ke Maven.
BP_MAVEN_ACTIVE_PROFILES Daftar profil aktif yang dipisahkan koma diteruskan ke Maven.
BP_MAVEN_BUILT_MODULE Menunjuk artefak aplikasi yang berisi modul. Secara default, build terlihat di modul akar.
BP_MAVEN_BUILT_ARTIFACT Lokasi artefak aplikasi bawaan. Nilai ini menggantikan BP_MAVEN_BUILT_MODULE variabel. Anda dapat mencocokkan satu file, beberapa file, atau direktori melalui satu atau beberapa pola yang dipisahkan spasi. target/*.[ejw]ar
BP_MAVEN_POM_FILE Menentukan lokasi kustom ke file pom.xml proyek. Nilai ini relatif terhadap akar proyek (misalnya, /ruang kerja). pom.xml
BP_MAVEN_DAEMON_ENABLED Memicu penginstalan dan konfigurasi Apache maven-mvnd alih-alih Maven. Atur nilai ini ke true jika Anda ingin ke Maven Daemon. false
BP_MAVEN_SETTINGS_PATH Menentukan lokasi kustom ke file settings.xml Maven.
BP_INCLUDE_FILES Daftar pola glob yang dipisahkan titik dua agar sesuai dengan file sumber. Setiap file yang cocok dipertahankan dalam gambar akhir.
BP_EXCLUDE_FILES Daftar pola glob yang dipisahkan titik dua agar sesuai dengan file sumber. Setiap file yang cocok dihapus dari gambar akhir. Pola apa pun termasuk diterapkan terlebih dahulu, dan Anda dapat menggunakan "mengecualikan pola" untuk mengurangi file yang disertakan dalam build.
BP_JAVA_INSTALL_NODE Mengontrol apakah Buildpack terpisah menginstal Yarn dan Node.js atau tidak. Jika diatur ke true, Buildpack memeriksa akar aplikasi atau jalur yang diatur oleh BP_NODE_PROJECT_PATH. Jalur proyek mencari file yarn.lock , yang memerlukan penginstalan Yarn dan Node.js. Jika ada file package.json , build hanya memerlukan Node.js. false
BP_NODE_PROJECT_PATH Arahkan subdirektori proyek untuk mencari file package.json dan yarn.lock .

Mengonfigurasi Tomcat

Container Apps mendukung menjalankan file perang di server aplikasi Tomcat.

Berikut adalah daftar variabel lingkungan yang digunakan untuk mengonfigurasi Tomcat:

Membangun variabel lingkungan Deskripsi Default
BP_TOMCAT_CONTEXT_PATH Jalur konteks tempat aplikasi dipasang. Default ke kosong (ROOT)
BP_TOMCAT_EXT_CONF_SHA256 Hash SHA256 dari paket konfigurasi eksternal.
BP_TOMCAT_ENV_PROPERTY_SOURCE_DISABLED Saat diatur ke true, Buildpack tidak mengonfigurasi org.apache.tomcat.util.digester.EnvironmentPropertySource. Opsi konfigurasi ini ditambahkan untuk mendukung konfigurasi pemuatan dari variabel lingkungan dan mereferensikannya dalam file konfigurasi Tomcat.
BP_TOMCAT_EXT_CONF_STRIP Jumlah tingkat direktori yang akan dilucuti dari paket konfigurasi eksternal. 0
BP_TOMCAT_EXT_CONF_URI URI unduhan paket konfigurasi eksternal.
BP_TOMCAT_EXT_CONF_VERSION Versi paket konfigurasi eksternal.
BP_TOMCAT_VERSION Digunakan untuk mengonfigurasi versi Tomcat tertentu. Versi Tomcat yang didukung mencakup 8, 9, dan 10. 9.*

Mengonfigurasi Cloud Build Service

Berikut adalah daftar variabel lingkungan yang digunakan untuk mengonfigurasi Cloud Build Service:

Membangun variabel lingkungan Deskripsi Default
ORYX_DISABLE_TELEMETRY Mengontrol apakah akan menonaktifkan pengumpulan telemetri atau tidak. false

Cara mengonfigurasi variabel lingkungan build Java

Anda dapat mengonfigurasi variabel lingkungan build Java saat menyebarkan kode sumber aplikasi Java melalui perintah az containerapp upCLI , , az containerapp createatau 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>

Argumen build-env-vars adalah daftar variabel lingkungan untuk build, nilai yang dipisahkan spasi dalam key=value format. Berikut adalah daftar contoh yang dapat Anda teruskan sebagai variabel:

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

Anda juga dapat mengonfigurasi variabel lingkungan build Java saat menyiapkan GitHub Actions dengan Azure CLI di 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>

Langkah berikutnya