מדוע 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 בנתיבים המיועדים להם כשאתם מוסיפים ברירת מחדל רחבה של פרוקסי.