CloudFoundry और JDK
मैं एक स्प्रिंग ऐप की तैनाती से जूझ रहा हूं जिसे रनटाइम के दौरान जावा कोड को संकलित करने की आवश्यकता है। जब उपयोगकर्ता किसी समस्या का समाधान प्रस्तुत करता है, तो मेरा ऐप javac कमांड को कॉल करता है, इसलिए यह बाद में जावा को चला सकता है
मैं क्लाउड फाउंड्री में जा रहा हूं और जावा-बिल्डपैक का उपयोग कर रहा हूं, लेकिन दुर्भाग्य से, यह JDK के साथ नहीं आता है, केवल JRE उपलब्ध है और उस चीज में कोई javac या java कमांड उपलब्ध नहीं है।
क्या आप लोगों को पता है कि JDK को क्लाउड फाउंड्री में कैसे जोड़ा जाता है, बिना अपने कस्टम बिल्डपैक को लिखे।
धन्यवाद
जवाब
मेरा सुझाव है कि आप मल्टी-बिल्डपैक सपोर्ट का उपयोग करें और जेडडीके स्थापित करने के लिए एप्ट-बिल्डपैक का उपयोग करें। यह JBP के साथ ठीक काम करना चाहिए। इसे बस सूची में पहले स्थान पर होना चाहिए।
https://github.com/cloudfoundry/apt-buildpack
उदाहरण:
Apt.yml बनाएँ।
--- packages: - openjdk-11-jdk-headlessअपने JAR में बंडल करें
jar uf path/to/your/file.jar apt.yml। इसे JAR के मूल में जोड़ा जाना चाहिए, इसलिए यदिjar tf path/to/your/file.jarआपको इसे देखना चाहिएapt.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तब
cf push। आपको apt-buildpack रन को देखना चाहिए और JDK इंस्टॉल करना चाहिए। इसके बाद इसे इंस्टॉल किया जाएगा~/deps/0/lib/jvm/java-11-openjdk-amd64। यह पथ पर समाप्त होने के लिए प्रकट नहीं होता है, इसलिए पथ का पूर्ण उपयोग करेंjavacया पथ को अपडेट करें।