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 സ്വയം അതിനെ സൂചിപ്പിക്കുന്നു.
ആദ്യ കേസിന്, Testcontainers യഥാർത്ഥത്തിൽ ഉപയോഗിക്കുന്ന Docker പരിതസ്ഥിതി കണ്ടെത്തുക. വിദൂര ഡീമണോ Docker Desktop-ഓ പ്രാദേശിക dockerd-ൽ നിന്ന് വ്യത്യസ്തമായ ഉറവിടത്തിൽ നിന്ന് കോൺഫിഗറേഷൻ എടുത്തേക്കാം. വിശാലമായ പ്രോക്സി ഡിഫോൾട്ട് ചേർക്കുമ്പോൾ പ്രാദേശിക ടെസ്റ്റ് സേവനങ്ങളും Docker API-യും അവയുടെ ഉദ്ദേശിച്ച പാതകളിൽ നിലനിർത്തുക.