Mengapa Testcontainers withEnv Tidak Memproksikan Tarikan Imej
Konfigurasikan daemon Docker untuk tarikan yang gagal; pemboleh ubah proksi kontena hanya sampai kepada program selepas kontena dicipta.
Jika Testcontainers gagal semasa menarik imej, tetapan withEnv kontena masa hadapan tidak dapat membantu. Daemon Docker-lah yang melakukan muat turun dari daftar itu sebelum kontena wujud.
| Operasi yang gagal | Konfigurasi proksi untuk diperiksa |
|---|---|
| Tarikan imej | Daemon Docker yang digunakan oleh ujian dan laluan daftarnya |
| Muat turun di dalam kontena yang berjalan | Input yang disokong aplikasi dalam kontena itu |
| Ujian Java bersambung ke Docker atau aplikasi | Klien Java yang membuat sambungan itu |
Untuk kes kedua, tambahkan pemboleh ubah persekitaran pada definisi GenericContainer sedia ada:
container
.withEnv("http_proxy", "http://proxy.example:8080")
.withEnv("https_proxy", "http://proxy.example:8080");Jika muat turun di dalam kontena dibenarkan menggunakan titik akhir HTTP awam, isikan nilai itu daripada senarai proksi HTTP. Program dalam imej mesti membaca pemboleh ubah itu. Ia tidak menukar soket pangkalan data sewenang-wenangnya menjadi trafik proksi HTTP. Titik akhir juga mesti boleh dicapai dari kontena: 127.0.0.1-nya merujuk kepada dirinya sendiri.
Untuk kes pertama, cari persekitaran Docker yang benar-benar digunakan oleh Testcontainers. Daemon jauh atau Docker Desktop mungkin mengambil konfigurasi daripada sumber yang berbeza daripada dockerd setempat. Kekalkan perkhidmatan ujian setempat dan API Docker pada laluan yang dimaksudkan apabila menambah proksi lalai yang luas.