Spring Boot imaj derlemeleri: Paketo derleyicisinin proxy'sini yapılandırma
Proxy değişkenlerini Gradle bootBuildImage veya Maven image.env üzerinden bir Paketo derleyicisine aktarın; derleme aracından ve Docker servisinden ayrı olarak.
Bir derleme aracı bağımlılıklarını başarıyla çözebilirken bir Paketo buildpack çalışma zamanını indiremez. Buildpack, derleyicinin konteyneri içinde çalışır ve kendi proxy girdisine ihtiyaç duyar.
Gradle'ın bootBuildImage görevi
Spring Boot'un mevcut bootBuildImage görevini kullanan bir Groovy build.gradle dosyasında:
tasks.named("bootBuildImage") {
environment["HTTP_PROXY"] = "http://proxy.example:8080"
environment["HTTPS_PROXY"] = "http://proxy.example:8080"
}
Maven eklentisi image.env kullanır
spring-boot:build-image için bu değerleri mevcut Spring Boot Maven eklentisi yapılandırmasında image.env altına yerleştirin:
<configuration>
<image>
<env>
<HTTP_PROXY>http://proxy.example:8080</HTTP_PROXY>
<HTTPS_PROXY>http://proxy.example:8080</HTTPS_PROXY>
</env>
</image>
</configuration>
Hem Gradle görev ortamı hem de Maven image.env derleyiciye değerler verir. Her iki ad da aynı sıradan HTTP aracısını belirtebilir; HTTPS artefakt URL'leri için de. Genel proxy'ler aracılığıyla izin verilen genel artefakt indirmeleri için HTTP proxy listesi bu derleyici değerleri için adaylar sunar.
Bu ayar Gradle'ın systemProp.http.proxyHost özelliklerinden bağımsızdır. Onlar JVM'e aittir ve derleyici içindeki başka bir süreci otomatik olarak yapılandırmaz.
Docker servisi önce gerekli derleyici ve çalışma imajlarını edinmelidir. O daha erken aşamadaki kayıt defteri hatası, henüz başlamamış bir buildpack'e verilen değişkeni değil servisin yol ve kayıt defteri yapılandırmasını gerektirir.
Derleyicinin konteynerinden erişilebilen bir proxy uç noktası kullanın. Geri döngü adresi o konteyneri tanımlar, ille de geliştiricinin iş istasyonunu değil.
Son uygulamanın çalışma ortamını da bilinçli tutun. Derleme sırasındaki erişim ve uygulama daha sonra çalıştığında kullanılan yol ayrı yapılandırma kararlarıdır.