CloudFoundry और JDK

Sep 17 2020

मैं एक स्प्रिंग ऐप की तैनाती से जूझ रहा हूं जिसे रनटाइम के दौरान जावा कोड को संकलित करने की आवश्यकता है। जब उपयोगकर्ता किसी समस्या का समाधान प्रस्तुत करता है, तो मेरा ऐप javac कमांड को कॉल करता है, इसलिए यह बाद में जावा को चला सकता है

मैं क्लाउड फाउंड्री में जा रहा हूं और जावा-बिल्डपैक का उपयोग कर रहा हूं, लेकिन दुर्भाग्य से, यह JDK के साथ नहीं आता है, केवल JRE उपलब्ध है और उस चीज में कोई javac या java कमांड उपलब्ध नहीं है।

क्या आप लोगों को पता है कि JDK को क्लाउड फाउंड्री में कैसे जोड़ा जाता है, बिना अपने कस्टम बिल्डपैक को लिखे।

धन्यवाद

जवाब

1 DanielMikusa Sep 18 2020 at 01:17

मेरा सुझाव है कि आप मल्टी-बिल्डपैक सपोर्ट का उपयोग करें और जेडडीके स्थापित करने के लिए एप्ट-बिल्डपैक का उपयोग करें। यह JBP के साथ ठीक काम करना चाहिए। इसे बस सूची में पहले स्थान पर होना चाहिए।

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

उदाहरण:

  1. Apt.yml बनाएँ।

     ---
     packages:
     - openjdk-11-jdk-headless
    
  2. अपने JAR में बंडल करें jar uf path/to/your/file.jar apt.yml। इसे JAR के मूल में जोड़ा जाना चाहिए, इसलिए यदि jar tf path/to/your/file.jarआपको इसे देखना चाहिए apt.ymlऔर इसके लिए कुछ भी उपसर्ग नहीं करना चाहिए ।

  3. अपना घोषणापत्र अपडेट करें। सूची में पहले 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। यह पथ पर समाप्त होने के लिए प्रकट नहीं होता है, इसलिए पथ का पूर्ण उपयोग करें javacया पथ को अपडेट करें।