मुख्य सामग्री पर जाएं

पॉडमैन जाँच

scripts/podman_testing में स्थित स्क्रिप्ट्स की पॉडमैन जाँच सर्वर पर प्रतिलिपि बनाएँ और निष्पादित करें।

प्रारंभिक सेटअप और प्रबंधन​

  1. copy.docker.duplistatus.local: स्थानीय डॉकर डेमॉन से पॉडमैन में डॉकर छवि की प्रतिलिपि बनाता है (स्थानीय जाँच के लिए)।
  2. copy.docker.duplistatus.remote: दूरस्थ विकास सर्वर से पॉडमैन में डॉकर छवि की प्रतिलिपि बनाता है (एसएसएच पहुँच की आवश्यकता है)।
    • विकास सर्वर पर छवि बनाएँ इसका उपयोग करके: docker build . -t wsj-br/duplistatus:devel
  3. start.duplistatus: रूटलेस मोड में कंटेनर शुरू करता है।
  4. pod.testing: पॉडमैन पॉड के अंदर कंटेनर का परीक्षण करता है (रूट विशेषाधिकारों के साथ)।
  5. stop.duplistatus: पॉड को रोकता है और कंटेनर को हटा देता है।
  6. clean.duplistatus: कंटेनर रोकता है, पॉड हटाता है और पुरानी छवियों को साफ करता है।

डीएनएस कॉन्फ़िगरेशन​

स्क्रिप्ट्स स्वचालित रूप से होस्ट सिस्टम से डीएनएस सेटिंग्स का पता लगाती हैं और कॉन्फ़िगर करती हैं:

  • स्वचालित पहचान: डीएनएस सर्वर और खोज डोमेन निकालने के लिए resolvectl status (systemd-resolved) का उपयोग करता है
  • फ़ॉलबैक समर्थन: गैर-सिस्टमडी सिस्टम पर /etc/resolv.conf को पार्स करने पर वापस आता है
  • स्मार्ट फ़िल्टरिंग: स्वचालित रूप से लोकलहोस्ट पतों और आईपीवी6 नाम सर्वरों को फ़िल्टर करता है
  • इसके साथ काम करता है:
    • टेलस्केल मैजिकडीएनएस (100.100.100.100)
    • कॉर्पोरेट डीएनएस सर्वर
    • मानक नेटवर्क कॉन्फ़िगरेशन
    • कस्टम डीएनएस सेटअप

कोई मैनुअल डीएनएस कॉन्फ़िगरेशन की आवश्यकता नहीं है - स्क्रिप्ट्स इसे स्वचालित रूप से संभालती हैं!

निगरानी और स्वास्थ्य जाँच​

  • check.duplistatus: पॉड के लॉग, कनेक्टिविटी और एप्लिकेशन स्वास्थ्य की जाँच करता है।

डीबगिंग कमांड​

  • logs.duplistatus: पॉड के लॉग दिखाता है।
  • exec.shell.duplistatus: कंटेनर में एक शेल खोलता है।
  • restart.duplistatus: पॉड को रोकता है, कंटेनर को हटाता है, छवि की प्रतिलिपि बनाता है, कंटेनर बनाता है और पॉड शुरू करता है।

उपयोग प्रवाह​

विकास सर्वर​

विकास सर्वर पर डॉकर छवि बनाएँ:

docker build . -t wsj-br/duplistatus:devel

पॉडमैन सर्वर​

  1. डॉकर छवि स्थानांतरित करें:
    • उपयोग करें ./copy.docker.duplistatus.local यदि डॉकर और पॉडमैन एक ही मशीन पर हैं
    • उपयोग करें ./copy.docker.duplistatus.remote यदि दूरस्थ विकास सर्वर से प्रतिलिपि बना रहे हैं (.env फ़ाइल की आवश्यकता है REMOTE_USER और REMOTE_HOST के साथ)
  2. ./start.duplistatus के साथ कंटेनर शुरू करें (स्टैंडअलोन, रूटलेस)
    • या पॉड मोड में जाँच करने के लिए ./pod.testing का उपयोग करें (रूट के साथ)
  3. ./check.duplistatus और ./logs.duplistatus के साथ निगरानी करें
  4. समाप्त होने पर ./stop.duplistatus के साथ रोकें
  5. पूर्ण पुनरारंभ चक्र के लिए ./restart.duplistatus का उपयोग करें (रोकें, छवि की प्रतिलिपि बनाएँ, शुरू करें)
    • नोट: यह स्क्रिप्ट वर्तमान में copy.docker.duplistatus को संदर्भित करती है जिसे .local या .remote चर के साथ बदला जाना चाहिए
  6. कंटेनर, पॉड और पुरानी छवियों को हटाने के लिए ./clean.duplistatus का उपयोग करें

एप्लिकेशन का परीक्षण

यदि आप समान मशीन पर पॉडमैन सर्वर चला रहे हैं, तो http://localhost:9666 का उपयोग करें।

यदि आप किसी अन्य सर्वर पर हैं, तो इसके साथ यूआरएल प्राप्त करें:

echo "http://$(hostname -I | awk '{print $1}'):9666"

महत्वपूर्ण टिप्पणियाँ​

पॉडमैन पॉड नेटवर्किंग​

पॉडमैन पॉड में चलते समय, एप्लिकेशन को इनकी आवश्यकता होती है:

  • स्पष्ट डीएनएस कॉन्फ़िगरेशन (pod.testing स्क्रिप्ट द्वारा स्वचालित रूप से संभाला जाता है)
  • सभी इंटरफेस के लिए पोर्ट बाइंडिंग (0.0.0.0:9666)

स्क्रिप्ट्स इन आवश्यकताओं को स्वचालित रूप से संभालती हैं - कोई मैनुअल कॉन्फ़िगरेशन की आवश्यकता नहीं।

रूटलेस बनाम रूट मोड​

  • स्टैंडअलोन मोड (start.duplistatus): --userns=keep-id के साथ रूटलेस चलाता है
  • पॉड मोड (pod.testing): परीक्षण उद्देश्यों के लिए पॉड के अंदर रूट के रूप में चलाता है

स्वचालित डीएनएस पहचान के साथ दोनों मोड सही ढंग से काम करते हैं।

वातावरण कॉन्फ़िगरेशन​

copy.docker.duplistatus.local और copy.docker.duplistatus.remote दोनों को scripts/podman_testing निर्देशिका में .env फ़ाइल की आवश्यकता होती है:

स्थानीय कॉपी के लिए (copy.docker.duplistatus.local):

IMAGE=wsj-br/duplistatus:devel

दूरस्थ कॉपी के लिए (copy.docker.duplistatus.remote):

IMAGE=wsj-br/duplistatus:devel
REMOTE_USER=your_username
REMOTE_HOST=your_hostname

start.duplistatus स्क्रिप्ट को कम से कम IMAGE चर के साथ .env फ़ाइल की आवश्यकता होती है:

IMAGE=wsj-br/duplistatus:devel

नोट: स्क्रिप्ट का त्रुटि संदेश REMOTE_USER और REMOTE_HOST का उल्लेख करता है, लेकिन ये वास्तव में start.duplistatus द्वारा उपयोग नहीं किए जाते हैं—केवल IMAGE की आवश्यकता होती है।