Testcontainers withEnv इमेज पुल को प्रॉक्सी क्यों नहीं करता
विफल पुल के लिए Docker डेमॉन कॉन्फ़िगर करें; कंटेनर के प्रॉक्सी चर कंटेनर बनने के बाद ही प्रोग्राम तक पहुँचते हैं।
यदि Testcontainers किसी इमेज को पुल करते समय विफल हो जाता है, तो भावी कंटेनर की withEnv सेटिंग्स मदद नहीं कर सकतीं। वह रजिस्ट्री डाउनलोड कंटेनर के अस्तित्व में आने से पहले ही Docker डेमॉन करता है।
| विफल क्रिया | जाँचने योग्य प्रॉक्सी कॉन्फ़िगरेशन |
|---|---|
| इमेज पुल | टेस्ट जिस Docker डेमॉन का उपयोग करता है और उसका रजिस्ट्री मार्ग |
| चल रहे कंटेनर के भीतर डाउनलोड | उस कंटेनर में ऐप्लिकेशन द्वारा समर्थित इनपुट |
| Java टेस्ट Docker या ऐप से जुड़ता है | वह Java क्लाइंट जो यह कनेक्शन बनाता है |
दूसरे मामले के लिए, मौजूदा GenericContainer परिभाषा में पर्यावरण चर जोड़ें:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");यदि कंटेनर के भीतर डाउनलोड को सार्वजनिक HTTP एंडपॉइंट उपयोग करने की अनुमति है, तो वे मान HTTP प्रॉक्सी सूची से भरें। इमेज में मौजूद प्रोग्राम को वे चर पढ़ने चाहिए। वे किसी भी डेटाबेस सॉकेट को HTTP प्रॉक्सी ट्रैफ़िक में नहीं बदलते। एंडपॉइंट भी कंटेनर से पहुँचने योग्य होना चाहिए: उसका 127.0.0.1 स्वयं को संदर्भित करता है।
पहले मामले के लिए, वह Docker वातावरण खोजें जो Testcontainers वास्तव में उपयोग करता है। दूरस्थ डेमॉन या Docker Desktop स्थानीय dockerd से भिन्न स्रोत से कॉन्फ़िगरेशन ले सकता है। व्यापक प्रॉक्सी डिफ़ॉल्ट जोड़ते समय स्थानीय टेस्ट सेवाओं और Docker API को उनके इच्छित मार्गों पर रखें।