Java-buildpack: Mendapatkan kesalahan saat menggunakan Azul Zulu JDK di layanan mikro PCF

Dibuat pada 9 Jun 2021  ·  21Komentar  ·  Sumber: cloudfoundry/java-buildpack

Saya harus menghapus posting

question

Komentar yang paling membantu

@ajay-dbs Jika Anda berada di lingkungan offline, Anda perlu mengemas buildpack sendiri. Agar orang lain melakukannya untuk Anda, memerlukan izin hukum karena persyaratan mendistribusikan ulang perangkat lunak. Belum lagi aspek keamanan pendistribusian software yang terpercaya. Cara termudah untuk maju adalah dengan mengemas sendiri buildpack.

Proses ini didokumentasikan di sini . Anda perlu mengemas dari komputer yang memiliki akses Internet karena perlu mengunduh dependensi, namun, itu hanya beberapa perintah dan tidak akan memakan waktu lebih dari beberapa menit dengan koneksi Internet yang cukup cepat.

Semua 21 komentar

Lokasi tempat Anda mengarahkan buildpack, yaitu repository_root , harus merupakan repositori yang valid. Tidak ada index.yml (setidaknya ketika saya melihat sekarang) di lokasi itu.

Lihat https://github.com/cloudfoundry/java-buildpack/blob/main/docs/extending-repositories.md.

Hmm, sepertinya dulu ada index.yml di lokasi itu, tapi saya tidak melihatnya lagi. Biarkan saya bertanya-tanya dan melihat apa yang dapat saya temukan.

Sementara itu, jika Anda membuat index.yml , simpan di suatu tempat (tidak masalah) dan arahkan ke file di lokasi itu (yaitu https://cdn.azul.com/zulu/bin/zulu9 .0.7.1-jdk9.0.7-linux_x64.tar.gz), Anda dapat mengatasinya.

Kami telah menggunakan variabel di bawah ini dalam manifest.yml dari application-
JBP_CONFIG_ZULU_JRE: '[jre: {repository_root: " https://example.com :8443/nexus/repository/SRET/com/example/sret/AppD_zulu11.48.21-ca-jdk/11.0.11-linux_x64/AppD_zulu11.48.21- ca-jdk-11.0.11-linux_x64.gz"}, {versi: 11.0.+}]'
JBP_CONFIG_COMPONENTS '{jres: ["JavaBuildpack::Jre::ZuluJRE"]}'

Oke, ini harus sedikit berbeda. repository_root menunjuk ke folder tempat index.yml berada. Jadi URL yang digunakan JBP untuk mengunduh index.yml adalah repository_root/index.yml .

JBP kemudian akan membaca index.yml, memilih versi terbaru yang cocok dengan filter versi yang Anda tentukan dan mengunduh sumber daya yang dirujuk dari index.yml untuk versi tersebut.

Hi Dmikusa,

Jadi apakah itu berarti Zulu JDK dan juga index.yml harus berada di lokasi yang sama?

Ok saya mengerti apa yang Anda katakan, JBP_CONFIG_ZULU_JRE harus diatur sebagai

JBP_CONFIG_ZULU_JRE: '[jre: {repository_root: "insert-full-URL-to-index-yml-on-another-server"}, {versi: 11.0.+}]'

Itu harus berupa URL lengkap ke folder/direktori tempat index.yml berada. Buildpack akan menambahkan /index.yml ke dalamnya saat menghasilkan URL untuk mengunduh file index.yml. Jadi repository_root tidak boleh diakhiri dengan /index.yml .

Tampaknya ia memilih JVM dari jalur ini https://java-buildpack.cloudfoundry.org/openjdk/bionic/x86_64/bellsoft-jre8u282%2B8-linux-amd64.tar.gz. Di mana ini dikonfigurasi?

@ajay-dbs - Ini kemungkinan alasannya:

[ConfigurationUtils] PERINGATAN Nilai konfigurasi pengguna untuk 'jres' tidak valid, properti yang ada tidak ada

Itu mengabaikan bagian dari konfigurasi Anda. JBP_CONFIG_COMPONENTS terlihat baik-baik saja bagi saya, tetapi Anda akan ingin melihat lebih dekat apa yang terjadi di sana. Itu tidak menerapkan bagian konfigurasi itu, jadi itu tidak memilih JDK yang Anda inginkan.

Apakah karena ":" yang hilang antara JBP_CONFIG_COMPONENTS dan nilainya?

Seharusnya JBP_CONFIG_COMPONENTS: '{jres: ["JavaBuildpack::Jre::ZuluJRE"]}'

Itu tergantung pada bagaimana Anda mengatur variabel env. Jika Anda mengaturnya dalam manifes, itu harus memiliki : antaranya. Jika Anda mengaturnya dengan cf set-env maka itu hanya name val .

Hai tim,

Tim aplikasi telah menggunakan variabel ini dalam file manifest.yml.
JBP_CONFIG_ZULU_JRE: '[jre: {repository_root: " https://example.com :8051/pcf"}, {versi: 11.0.+}]'
JBP_CONFIG_COMPONENTS '{jres: ["JavaBuildpack::Jre::ZuluJRE"]}'

@ajay-dbs karena Anda menambahkan variabel env dalam manifest.yml , tampaknya titik dua yang hilang mungkin masalahnya. Tolong perbaiki sebagai

JBP_CONFIG_COMPONENTS: '{jres: ["JavaBuildpack::Jre::ZuluJRE"]}'

[Buildpack] ERROR Finalize gagal dengan pengecualian #https://cdn.azul.com/zulu/bin/index.yml>
Kesalahan Zulu JRE: Tidak dapat menemukan file cache untuk https://cdn.azul.com/zulu/bin/index.yml

BTW tautan ke https://cdn.azul.com/zulu/bin/index.yml telah dipulihkan sekarang.

[ERR] [ConfigurationUtils] PERINGATAN Nilai konfigurasi pengguna untuk 'versi' tidak valid, properti yang ada tidak ada

Adalah kesalahan yang berbeda tetapi serupa. Tampaknya sekarang menerima jres yang bagus. Anda dapat melihat itu benar-benar menjalankan wadah Zulu sekarang juga.

Dalam hal ini, sekarang tidak menyukai bagian di mana Anda mencoba mengatur versi ke 11.0.+. Apa yang Anda miliki di sana tidak sepenuhnya benar.

JBP_CONFIG_ZULU_JRE: '[jre: {repository_root: " https://example.com :8051/pcf"}, {versi: 11.0.+}]'

seharusnya

JBP_CONFIG_ZULU_JRE: '[jre: {repository_root: "https://example.com:8051/pcf", version: 11.0.+}]'

version dan repository_root berada pada objek jre . Jika ragu, Anda selalu dapat melihat file config/ . Konfigurasi JBP_CONFIG_* Anda tambahkan, harus cocok dengan format file konfigurasi, karena akan dihamparkan di atas konfigurasi.

Lihat struktur untuk Zulu: https://github.com/cloudfoundry/Java-buildpack/blob/main/config/zulu_jre.yml#L22 -L24

021-06-14T13:14:15.960+05:30 [STG/0] [ERR] [Buildpack] ERROR Deteksi gagal dengan pengecualian #

Saya ingat pernah melihat sesuatu seperti ini di masa lalu jika cache kacau dengan aplikasi. Coba dorong aplikasi Anda dengan nama baru seperti "my-cool-app-2" atau sesuatu yang unik & baru. Jika itu memperbaikinya, Anda harus menghapus dan mendorong ulang aplikasi Anda atau meminta administrator Anda menghapus cache blobstore buildpacks.

https://apidocs.cloudfoundry.org/16.13.0/blobstores/delete_all_blobs_in_the_buildpack_cache_blobstore.html

Perhatikan yang terakhir akan menghapus cache untuk semua buildpack. Meskipun ini tidak merusak, ini akan memaksa semua buildpack untuk mengunduh ulang semua sumber daya pada saat aplikasi dipentaskan lagi.

Kami telah mencoba menghapus cache dan juga mencoba menyebarkan aplikasi dengan nama dan rute yang benar-benar baru. Masih masalah yang sama.

Ini biasanya akan memperbaiki jenis masalah ini, jadi ada baiknya mengetahui bahwa itu tidak membantu di sini. Ini mungkin berarti ada sesuatu yang berbeda terjadi.

WARNING: buildpack script '/bin/detect' is not executable
[Buildpack] ERROR Detect failed with exception #<RuntimeError: Zulu JRE error: Unable to find cached file for https://zulu-index-file.dev.apps.example.com/index.yml>
Zulu JRE error: Unable to find cached file for https://zulu-index-file.dev.apps.example.com/index.yml
stat /tmp/buildpacks/674495fe521621eeb364a353eb511ee3/bin/detect: no such file or directory

Yang membuat saya khawatir, selain kesalahan caching, adalah PERINGATAN tentang /bin/detect dan `stat: tidak ada kesalahan file atau direktori seperti itu. Itu harus terjadi, dan tidak akan terjadi dengan buildpack yang kami kemas dengan rilis.

Di mana Anda mendapatkan buildpack Anda? Apakah Anda mengunduhnya dari halaman Rilis & mengunggahnya ke CF? Apakah Anda menggunakan URL ke halaman github? Jika demikian, apa URL tepatnya? Apakah Anda mendapatkan buildpack dari tempat lain? Apakah Anda mengemas buildpack Anda sendiri? Jika demikian, coba gunakan salah satu dari halaman Rilis atau buildpack lain yang diketahui berfungsi sebagai tes dasar untuk melihat apakah itu berfungsi seperti yang diharapkan, dan juga harap tunjukkan bagaimana Anda mengemas buildpack? Detail tambahan apa pun yang dapat Anda berikan dapat membantu menemukan masalah atau membantu mereproduksi masalah.

Harap terus mendorong sebagai nama aplikasi baru saat Anda terus menguji karena kami ingin memastikan bahwa kami mengesampingkan masalah caching.

Terima kasih

Beberapa pertanyaan lagi... Apakah ini berfungsi sebelumnya dan baru-baru ini rusak? Jika demikian, apa yang berubah baru-baru ini? Apakah Anda memutakhirkan versi buildpack? Apakah Anda mengubah file di server hosting Zulu Anda? Apakah ada pembaruan Zulu baru yang dimasukkan ke server Anda? Jika belum pernah berhasil atau ini pertama kalinya Anda mencobanya, beri tahu kami juga.

Terima kasih

@mells82 Saya pikir konten index.yml seharusnya

---
1.8.0_212: https://cdn.azul.com/zulu/bin/zulu8.38.0.13-ca-jre8.0.212-linux_x64.tar.gz
1.8.0_222: https://cdn.azul.com/zulu/bin/zulu8.40.0.25-ca-jre8.0.222-linux_x64.tar.gz
1.8.0_232: https://cdn.azul.com/zulu/bin/zulu8.42.0.23-ca-jre8.0.232-linux_x64.tar.gz
1.8.0_242: https://cdn.azul.com/zulu/bin/zulu8.44.0.11-ca-jre8.0.242-linux_x64.tar.gz
1.8.0_252: https://cdn.azul.com/zulu/bin/zulu8.46.0.19-ca-jre8.0.252-linux_x64.tar.gz
1.8.0_265: https://cdn.azul.com/zulu/bin/zulu8.48.0.53-ca-jre8.0.265-linux_x64.tar.gz
1.8.0_275: https://cdn.azul.com/zulu/bin/zulu8.50.0.51-ca-jre8.0.275-linux_x64.tar.gz
1.8.0_282: https://cdn.azul.com/zulu/bin/zulu8.52.0.23-ca-jre8.0.282-linux_x64.tar.gz
1.8.0_292: https://cdn.azul.com/zulu/bin/zulu8.54.0.21-ca-jre8.0.292-linux_x64.tar.gz
11.0.3: https://cdn.azul.com/zulu/bin/zulu11.31.11-ca-jre11.0.3-linux_x64.tar.gz
11.0.4: https://cdn.azul.com/zulu/bin/zulu11.33.15-ca-jre11.0.4-linux_x64.tar.gz
11.0.5: https://cdn.azul.com/zulu/bin/zulu11.35.15-ca-jre11.0.5-linux_x64.tar.gz
11.0.6: https://cdn.azul.com/zulu/bin/zulu11.37.17-ca-jre11.0.6-linux_x64.tar.gz
11.0.7: https://cdn.azul.com/zulu/bin/zulu11.39.15-ca-jre11.0.7-linux_x64.tar.gz
11.0.8: https://cdn.azul.com/zulu/bin/zulu11.41.23-ca-jre11.0.8-linux_x64.tar.gz
11.0.9: https://cdn.azul.com/zulu/bin/zulu11.43.55-ca-jre11.0.9.1-linux_x64.tar.gz
11.0.10: https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jre11.0.10-linux_x64.tar.gz
11.0.11: https://cdn.azul.com/zulu/bin/zulu11.48.21-ca-jre11.0.11-linux_x64.tar.gz

menghapus https membuat masalah di mana buildpack tidak akan mengunduh jre.

Kami telah mengunduh buildpack offline java dari pivortal dan menyimpannya di repositori PCF dan kemudian menggunakan buildpack dari repositori PCF.
Ini adalah pertama kalinya kami mencoba menjalankan aplikasi dengan Azul Zulu JDK. Secara default oracle JDK digunakan dengan Bellsoft VM dan Bellsoft VM ini tidak mendukung Object Instance Tracking. Jadi kami mencoba menggunakan JDK Azul Zulu.

Oke, terima kasih atas info ini. Hal-hal menjadi lebih masuk akal sekarang.

Cara buildpack Tanzu dikemas, dilakukan dalam mode "offline". Lihat di sini, kami menjalankan skrip ini untuk mengemasnya .

Saat dalam mode "offline", Anda hanya mendapatkan apa yang dikemas ke dalam bundel. JBP tidak dapat mengunduh hal-hal lain.

Dari dokumen untuk "offline":

Ini mengemas versi terbaru dari setiap ketergantungan (seperti yang dikonfigurasi dalam direktori config/) dan menonaktifkan remote_downloads.

https://github.com/cloudfoundry/Java-buildpack/#offline -package

Ini dilakukan karena itu dimaksudkan untuk berjalan di lingkungan offline tanpa akses Internet.

Saya mencoba di lab dengan JBP offline dan saya mendapatkan kesalahan yang sama persis seperti Anda:

   2021-06-17T15:21:56.72-0400 [STG/0] ERR [Buildpack]                      ERROR Finalize failed with exception #<RuntimeError: Zulu JRE error: Unable to find cached file for https://cdn.azul.com/zulu/bin/index.yml>
   2021-06-17T15:21:56.72-0400 [STG/0] ERR Zulu JRE error: Unable to find cached file for https://cdn.azul.com/zulu/bin/index.yml
   2021-06-17T15:21:56.72-0400 [STG/0] ERR Failed to compile droplet: Failed to run finalize script: exit status 1

Ini karena file itu tidak ada di cache offline dan dalam mode offline, itu hanya akan terlihat di cache.

Jika Anda ingin menggunakan Azul Zulu dalam buildpack offline, Anda perlu mengemas buildpack sendiri dengan Zulu di dalamnya. Jika tidak, Anda perlu menggunakan buildpack versi online. Untuk mengemas buildpack, lihat di sini dan pastikan Anda menyesuaikan component.yml sebelum mengemas. Anda ingin file itu menunjukkan Zulu.

Menggunakan buildpack online berfungsi, tetapi seperti yang dikatakan @RageZBla index.yml perlu diformat dengan benar. Saat ini, index.yml di https://cdn.azul.com/zulu/bin/index.yml tidak diformat dengan benar. Protokolnya tidak ada, yang menyebabkan masalah. Pastikan index.yml terstruktur seperti contoh di komentar @RageZBla .

terima kasih atas laporannya, index.yml telah diperbarui: https://cdn.azul.com/zulu/bin/index.yml

@ajay-dbs Jika Anda berada di lingkungan offline, Anda perlu mengemas buildpack sendiri. Agar orang lain melakukannya untuk Anda, memerlukan izin hukum karena persyaratan mendistribusikan ulang perangkat lunak. Belum lagi aspek keamanan pendistribusian software yang terpercaya. Cara termudah untuk maju adalah dengan mengemas sendiri buildpack.

Proses ini didokumentasikan di sini . Anda perlu mengemas dari komputer yang memiliki akses Internet karena perlu mengunduh dependensi, namun, itu hanya beberapa perintah dan tidak akan memakan waktu lebih dari beberapa menit dengan koneksi Internet yang cukup cepat.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat