Ինչու 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-ն իրենց նախատեսված ուղիներում։