का उपयोग करके एक शेल स्क्रिप्ट कैसे चलाएं मैं एक साधारण कंटेनर बनाने के लिए डॉकरफ़ाइल का उपयोग कर रहा हूं। यहाँ Dockerfile
है:डॉकरफ़ाइल सीएमडी
FROM XXXXXXX:5003/base-java
MAINTAINER XXXXX
ADD pubsub/ /opt/pubsub/
CMD ["/opt/pubsub/run.sh"]
run.sh
की सामग्री इस प्रकार है:
#!/bin/bash
nohup java -jar /opt/pubsub/publish.jar &
nohup java -jar /opt/pubsub/subscribe.jar &
यह pub/sub
के लिए सरल जावा अनुप्रयोग है।
अब मेरे पास एक अन्य कंटेनर है जो खरगोशक चला रहा है और मैं 2 कंटेनर को जोड़ रहा हूं हालांकि मेरा प्रत्येक प्रयास अभी विफल रहा है और मेरा pub/sub
कंटेनर शुरू नहीं होता है। क्या कोई सलाह दे सकता है कि इस मुद्दे को डीबगिन कैसे करें? किसी भी तरह डॉकर लॉग में कुछ भी नहीं है। sudo docker run -d -P --name pub_sub --link rabbitmq:rabbitmq1 image_pub_sub
और यहाँ है कैसे मैं अपने pub/sub
कोड में अन्य नाम का उपयोग कर रहा
factory = new ConnectionFactory();
factory.setHost("rabbitmq1");
try { connection = factory.newConnection();
channel = connection.createChannel();
channel.queueDeclare("pub", true, false, false, null);
}
catch (IOException e) { // TODO Auto-generated catch block
e.printStackTrace(); }
मैं उम्मीद कर रहा था कि मेरी प्रकाशित कोड एक कतार बना देगा:
यहाँ कैसे मैं कंटेनर जोड़ने रहा है खरगोश कंटेनर में और संदेशों को धक्का देना शुरू करें। मेरा ग्राहक कोड मूल रूप से उसी खरगोश से कनेक्ट होगा और संदेशों को पढ़ना शुरू कर देगा।
e8a50d5aefa5 image_pub_sub:latest "/opt/pubsub/run.sh" 32 minutes ago Exited (0) 32 minutes ago pub_sub
तो इसका मतलब यह है मेरी कंटेनर नहीं है:
जब मैं कमांड कुछ नहीं होता यह सिर्फ नए कंटेनर और exits..When मैं sudo docker ps -a
चलाने की एक लंबी आईडी प्रिंट चलाने के लिए, मैं निम्नलिखित देख सकते हैं चल रहा है।
अभी मैं निम्न आदेश का उपयोग कर एक नया कंटेनर लॉन्च करके /etc/hosts
अद्यतन करके परीक्षण किया है: sudo docker run -i -t image_pub_sub /bin/bash
। संशोधित इस नए कंटेनर के /etc/hosts
और निम्न प्रविष्टि <IP_ADDRESS> rabbitmq1
जोड़ा गया है और मेरी स्क्रिप्ट /opt/pubsub/run.sh
भाग गया और यह निम्नलिखित संदेश के साथ nohup फ़ाइल संलग्न कर देता है:
Message Sent
[x] Received 'Hello'
Message Sent
Message Sent
[x] Received 'Hello'
आप अधिक जानकारी प्रदान करने की जरूरत है; कंटेनरों को जोड़ने के लिए आपने किन आदेशों का उपयोग किया था, परिणाम क्या था और आपने क्या उम्मीद की थी? –
कृपया इसे टिप्पणी के बजाय, प्रश्न में जोड़ें। और हमें बताएं कि जब आप आदेश चलाते हैं तो क्या होता है (क्या कंटेनर अभी भी चल रहा है? आप कैसे जानते हैं कि यह काम नहीं कर रहा है?)।इसके अलावा, कंटेनर में एक खोल प्राप्त करें और खरगोश कंटेनर से जुड़ने का परीक्षण करें। –
धन्यवाद। फिलहाल यह स्पष्ट नहीं है कि आपके पास नेटवर्किंग समस्या है या कोड/rabbitmq समस्या है। क्या होता है यदि आप 'डॉकर exec -it pub_sub ping rabbitmq1' चलाते हैं? –