اگر 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 محلی بگیرد. هنگام افزودن یک پروکسی پیش‌فرض گسترده، سرویس‌های آزمون محلی و API داکر را روی مسیرهای مورد نظرشان نگه دارید.

مقالات مرتبط