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 ਨੂੰ ਉਨ੍ਹਾਂ ਦੇ ਮਨਜ਼ੂਰ ਮਾਰਗਾਂ ਉੱਤੇ ਰੱਖੋ।