मैं डॉकर कंटेनर को रन कमांड के माध्यम से कॉल करने के बाद दो अलग-अलग जेएआर फ़ाइलों को स्वचालित रूप से निष्पादित करना चाहता हूं, इसलिए जब मैं docker run mycontainer
टाइप करता हूं तो उन्हें दोनों कहा जाता है। अब तक, मेरे पास ऐसा डॉकरफ़ाइल है जो इस तरह दिखता है:दो डार स्वचालित रूप से "डॉकर रन कंटेनर" पर शुरू होते हैं
# base image is java:8 (ubuntu)
FROM java:8
# add files to image
ADD first.jar .
ADD second.jar .
# start on run
CMD ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "first.jar"]
CMD ["/usr/lib/jvm/java-8-openjdk-amd64/bin/java", "-jar", "second.jar"]
हालांकि, यह केवल दूसरा शुरू होता है .jar।
अब, दोनों जार एक लूप में सर्वर हैं, इसलिए मुझे लगता है कि एक बार शुरू हो जाने पर यह टर्मिनल को अवरुद्ध करता है। यदि मैं कंटेनर को run -it mycontainer bash
का उपयोग करके चलाता हूं और उन्हें मैन्युअल रूप से भी कॉल करता हूं, तो पहला व्यक्ति इसके आउटपुट करेगा और मैं दूसरा शुरू नहीं कर सकता।
क्या अलग-अलग टर्मिनल खोलने और उनके बीच स्विच करने के लिए प्रत्येक जार चलाने के लिए कोई तरीका है? पसंदीदा रूप से पहले से ही dockerfile में।
मैं ubuntu के बारे में कुछ भी नहीं करने के लिए अगले पता, लेकिन मैं xterm
आदेश एक नया टर्मिनल खुलती पाया, लेकिन इस एक जार बुला के बाद काम नहीं करेगा। जो मैं खोज रहा हूं वह डॉकरफ़ाइल के अंदर निर्देश हैं जो कि उदाहरण के लिए एक नया टर्मिनल खोलें, पहले टर्मिनल में पहले .jar, alt-tab निष्पादित करें और दूसरा .jar निष्पादित करें, या कम से कम इसे प्राप्त करें।
धन्यवाद!
धन्यवाद, स्क्रिप्ट समाधान मैं वास्तव में क्या ढूंढ रहा था। अब तक समस्याओं के बिना काम करता है! कुछ तोड़ने के मामले में, मैं भी संलयन पर एक नज़र देख रहा हूं। – buggy
सुनकर अच्छा लगा! मैंने एक उदाहरण जोड़ा है कि आप अलग-अलग "सेवाओं" के रूप में दोनों जार शुरू करने के लिए फ़्यूज़न कैसे सेट कर सकते हैं। – craeckie