Spring Boot ਇਮੇਜ ਬਿਲਡ: Paketo ਬਿਲਡਰ ਦਾ ਪ੍ਰੌਕਸੀ ਕਨਫਿਗਰ ਕਰੋ
Gradle bootBuildImage ਜਾਂ Maven image.env ਰਾਹੀਂ Paketo ਬਿਲਡਰ ਨੂੰ ਪ੍ਰੌਕਸੀ ਵੇਰੀਏਬਲ ਭੇਜੋ, ਬਿਲਡ ਟੂਲ ਅਤੇ Docker ਡੈਮਨ ਤੋਂ ਵੱਖਰੇ ਤੌਰ 'ਤੇ।
ਇੱਕ ਬਿਲਡ ਟੂਲ ਆਪਣੀਆਂ ਨਿਰਭਰਤਾਵਾਂ ਨੂੰ ਸਫਲਤਾਪੂਰਵਕ ਹੱਲ ਕਰ ਸਕਦਾ ਹੈ, ਪਰ Paketo ਬਿਲਡਪੈਕ ਰਨਟਾਈਮ ਡਾਊਨਲੋਡ ਨਹੀਂ ਕਰ ਸਕਦਾ। ਬਿਲਡਪੈਕ ਬਿਲਡਰ ਕੰਟੇਨਰ ਦੇ ਅੰਦਰ ਚੱਲਦਾ ਹੈ ਅਤੇ ਇਸਨੂੰ ਆਪਣਾ ਪ੍ਰੌਕਸੀ ਇਨਪੁਟ ਚਾਹੀਦਾ ਹੈ।
Gradle ਦਾ bootBuildImage ਟਾਸਕ
Spring Boot ਦੇ ਮੌਜੂਦਾ bootBuildImage ਟਾਸਕ ਵਾਲੀ Groovy build.gradle ਵਿੱਚ:
tasks.named("bootBuildImage") {
environment["HTTP_PROXY"] = "http://proxy.example:8080"
environment["HTTPS_PROXY"] = "http://proxy.example:8080"
}
Maven ਪਲੱਗਇਨ image.env ਵਰਤਦਾ ਹੈ
spring-boot:build-image ਲਈ, ਇਹ ਮੁੱਲ ਮੌਜੂਦਾ Spring Boot Maven ਪਲੱਗਇਨ ਕਨਫਿਗਰੇਸ਼ਨ ਵਿੱਚ image.env ਹੇਠ ਰੱਖੋ:
<configuration>
<image>
<env>
<HTTP_PROXY>http://proxy.example:8080</HTTP_PROXY>
<HTTPS_PROXY>http://proxy.example:8080</HTTPS_PROXY>
</env>
</image>
</configuration>
Gradle ਦਾ ਟਾਸਕ ਵਾਤਾਵਰਣ ਅਤੇ Maven ਦਾ image.env ਦੋਵੇਂ ਬਿਲਡਰ ਨੂੰ ਮੁੱਲ ਦਿੰਦੇ ਹਨ। ਦੋਵੇਂ ਨਾਮ ਇੱਕੋ ਆਮ HTTP ਵਿਚੋਲੇ ਨੂੰ ਦਰਸਾ ਸਕਦੇ ਹਨ, HTTPS ਆਰਟੀਫੈਕਟ URL ਲਈ ਵੀ। ਜਨਤਕ ਪ੍ਰੌਕਸੀ ਰਾਹੀਂ ਮਨਜ਼ੂਰ ਜਨਤਕ ਆਰਟੀਫੈਕਟ ਡਾਊਨਲੋਡ ਲਈ HTTP ਪ੍ਰੌਕਸੀ ਸੂਚੀ ਇਹਨਾਂ ਬਿਲਡਰ ਮੁੱਲਾਂ ਲਈ ਉਮੀਦਵਾਰ ਦਿੰਦੀ ਹੈ।
ਇਹ ਸੈਟਿੰਗ Gradle ਦੇ systemProp.http.proxyHost ਗੁਣਾਂ ਤੋਂ ਸੁਤੰਤਰ ਹੈ। ਉਹ JVM ਦੇ ਹਨ ਅਤੇ ਬਿਲਡਰ ਵਿੱਚ ਕਿਸੇ ਹੋਰ ਪ੍ਰਕਿਰਿਆ ਨੂੰ ਆਪਣੇ ਆਪ ਕਨਫਿਗਰ ਨਹੀਂ ਕਰਦੇ।
Docker ਡੈਮਨ ਨੂੰ ਪਹਿਲਾਂ ਲੋੜੀਂਦੀਆਂ ਬਿਲਡਰ ਅਤੇ ਰਨ ਇਮੇਜਾਂ ਲੈਣੀਆਂ ਪੈਣਗੀਆਂ। ਉਸ ਪਹਿਲੇ ਪੜਾਅ ਵਿੱਚ ਰਜਿਸਟਰੀ ਫੇਲ ਹੋਣ 'ਤੇ ਡੈਮਨ ਦਾ ਰਸਤਾ ਅਤੇ ਰਜਿਸਟਰੀ ਕਨਫਿਗਰੇਸ਼ਨ ਚਾਹੀਦਾ ਹੈ, ਉਹ ਵੇਰੀਏਬਲ ਨਹੀਂ ਜੋ ਅਜੇ ਸ਼ੁਰੂ ਨਾ ਹੋਏ ਬਿਲਡਪੈਕ ਨੂੰ ਦਿੱਤਾ ਜਾਵੇ।
ਬਿਲਡਰ ਕੰਟੇਨਰ ਤੋਂ ਪਹੁੰਚਯੋਗ ਪ੍ਰੌਕਸੀ ਐਂਡਪੌਇੰਟ ਵਰਤੋ। ਇਸਦਾ ਲੂਪਬੈਕ ਪਤਾ ਉਸੇ ਕੰਟੇਨਰ ਦੀ ਪਛਾਣ ਕਰਦਾ ਹੈ, ਜ਼ਰੂਰੀ ਨਹੀਂ ਕਿ ਡਿਵੈਲਪਰ ਦਾ ਵਰਕਸਟੇਸ਼ਨ।
ਅੰਤਿਮ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਰਨਟਾਈਮ ਵਾਤਾਵਰਣ ਵੀ ਜਾਣਬੁੱਝ ਕੇ ਰੱਖੋ। ਬਿਲਡ ਸਮੇਂ ਪਹੁੰਚ ਅਤੇ ਐਪਲੀਕੇਸ਼ਨ ਦੇ ਬਾਅਦ ਚੱਲਣ ਵੇਲੇ ਵਰਤਿਆ ਜਾਣ ਵਾਲਾ ਰਸਤਾ ਦੋ ਵੱਖਰੇ ਕਨਫਿਗਰੇਸ਼ਨ ਫੈਸਲੇ ਹਨ।