Sestavování imageů Spring Boot: nastavte proxy pro sestavovač Paketo
Předávejte proxy proměnné sestavovači Paketo přes Gradle bootBuildImage nebo Maven image.env, odděleně od nástroje sestavení a démona Dockeru.
Nástroj sestavení může úspěšně vyřešit své závislosti, zatímco buildpack Paketo nedokáže stáhnout runtime. Buildpack běží uvnitř kontejneru sestavovače a potřebuje vlastní vstup pro proxy.
Úloha bootBuildImage v Gradle
V souboru Groovy build.gradle s existující úlohou bootBuildImage ze Spring Boot:
tasks.named("bootBuildImage") {
environment["HTTP_PROXY"] = "http://proxy.example:8080"
environment["HTTPS_PROXY"] = "http://proxy.example:8080"
}
Plugin Maven používá image.env
Pro spring-boot:build-image umístěte tyto hodnoty pod image.env v existující konfiguraci pluginu Spring Boot Maven:
<configuration>
<image>
<env>
<HTTP_PROXY>http://proxy.example:8080</HTTP_PROXY>
<HTTPS_PROXY>http://proxy.example:8080</HTTPS_PROXY>
</env>
</image>
</configuration>
Prostředí úlohy Gradle i image.env v Maven předávají sestavovači hodnoty. Oba názvy mohou označovat stejného běžného HTTP prostředníka, i pro URL artefaktů HTTPS. Pro veřejná stahování artefaktů povolená přes veřejné proxy poskytuje seznam HTTP proxy kandidáty pro tyto hodnoty sestavovače.
Toto nastavení je nezávislé na vlastnostech systemProp.http.proxyHost v Gradle. Ty patří JVM a automaticky nenastavují jiný proces v sestavovači.
Démon Dockeru musí nejprve získat potřebné image sestavovače a běhového prostředí. Selhání registru v této dřívější fázi vyžaduje trasu a konfiguraci registru démona, nikoli proměnnou předanou buildpacku, který ještě nezačal.
Použijte proxy koncový bod dosažitelný z kontejneru sestavovače. Jeho loopback adresa identifikuje tento kontejner, ne nutně pracovní stanici vývojáře.
Udržujte záměrně i běhové prostředí výsledné aplikace. Přístup při sestavování a trasa použitá při pozdějším běhu aplikace jsou samostatná konfigurační rozhodnutí.