Защо 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 по предназначените им маршрути, когато добавяте широко прокси по подразбиране.