CloudFoundry และ JDK

Sep 17 2020

ฉันกำลังดิ้นรนกับการปรับใช้แอพ spring ที่ต้องคอมไพล์โค้ด java ระหว่างรันไทม์ แอปของฉันเรียกใช้คำสั่ง javac เมื่อผู้ใช้ส่งวิธีแก้ปัญหาเพื่อให้สามารถเรียกใช้ java ได้ในภายหลัง

ฉันกำลังปรับใช้กับ cloud Foundry และใช้ java-buildpack แต่น่าเสียดายที่มันไม่ได้มาพร้อมกับ JDK มีเพียง JRE เท่านั้นที่พร้อมใช้งานและสิ่งนั้นไม่มีคำสั่ง javac หรือ java

พวกคุณรู้วิธีเพิ่ม JDK ไปยัง cloud Foundry โดยไม่ต้องเขียน buildpack ของตัวเองหรือไม่

ขอบคุณ

คำตอบ

1 DanielMikusa Sep 18 2020 at 01:17

ฉันขอแนะนำให้คุณใช้การสนับสนุน multi-buildpack และใช้ apt-buildpack เพื่อติดตั้ง JDK ควรทำงานร่วมกับ JBP เพียงแค่ต้องเป็นที่หนึ่งในรายการ

https://github.com/cloudfoundry/apt-buildpack

ตัวอย่าง:

  1. สร้าง apt.yml

     ---
     packages:
     - openjdk-11-jdk-headless
    
  2. Bundle jar uf path/to/your/file.jar apt.ymlที่ลงในขวดของคุณ ควรเพิ่มเข้าไปในรูทของ JAR ดังนั้นหากjar tf path/to/your/file.jarคุณควรเห็นapt.ymlเฉยๆและไม่มีอะไรนำหน้า

  3. อัปเดต manifest.yml ของคุณ เพิ่ม apt-buildpack ก่อนในรายการ

     ---
     applications:
     - name: spring-music
       memory: 1G
       path: build/libs/spring-music-1.0.jar
       buildpacks:
       - https://github.com/cloudfoundry/apt-buildpack#v0.2.2
       - java_buildpack
    
  4. แล้วcf push. คุณควรเห็น apt-buildpack ทำงานและติดตั้ง JDK ~/deps/0/lib/jvm/java-11-openjdk-amd64จากนั้นก็จะได้รับการติดตั้งไว้ใต้ ดูเหมือนว่าจะไม่สิ้นสุดบน PATH ดังนั้นให้ใช้เส้นทางแบบเต็มjavacหรืออัปเดตเส้นทาง