Imaxes de Spring Boot: configurar o proxy do builder de Paketo
Pasa variables de proxy a un builder de Paketo mediante Gradle bootBuildImage ou Maven image.env, por separado da ferramenta de compilación e do daemon de Docker.
Unha ferramenta de compilación pode resolver as súas dependencias correctamente mentres un buildpack de Paketo non pode descargar unha contorna de execución. O buildpack execútase dentro do contedor do builder e necesita a súa propia entrada de proxy.
A tarefa bootBuildImage de Gradle
Nun build.gradle de Groovy coa tarefa bootBuildImage existente de Spring Boot:
tasks.named("bootBuildImage") {
environment["HTTP_PROXY"] = "http://proxy.example:8080"
environment["HTTPS_PROXY"] = "http://proxy.example:8080"
}
O plugin de Maven usa image.env
Para spring-boot:build-image, coloca estes valores baixo image.env na configuración existente do plugin 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>
Tanto a contorna da tarefa de Gradle como image.env de Maven fornecen valores ao builder. Ambos os nomes poden identificar o mesmo intermediario HTTP ordinario, tamén para URL de artefactos HTTPS. Para descargas públicas de artefactos permitidas a través de proxies públicos, a lista de proxies HTTP ofrece candidatos para estes valores do builder.
Este axuste é independente das propiedades systemProp.http.proxyHost de Gradle. Esas pertencen á JVM e non configuran automaticamente outro proceso dentro do builder.
O daemon de Docker primeiro debe obter as imaxes de builder e de execución necesarias. Un fallo de rexistro nesa etapa anterior require a ruta e a configuración de rexistro do daemon, non unha variable entregada a un buildpack que aínda non comezou.
Usa un punto de conexión de proxy accesible desde o contedor do builder. O seu enderezo de loopback identifica ese contedor, non necesariamente a estación de traballo do desenvolvedor.
Mantén tamén deliberada a contorna de execución da aplicación final. O acceso durante a compilación e a ruta que se usa cando a aplicación se executa despois son decisións de configuración separadas.