Build Image Spring Boot: konfigurasi proxy builder Paketo
Teruskan variabel proxy ke builder Paketo melalui Gradle bootBuildImage atau Maven image.env, terpisah dari alat build dan daemon Docker.
Alat build dapat menyelesaikan dependensinya dengan berhasil, sementara buildpack Paketo tidak dapat mengunduh runtime. Buildpack berjalan di dalam kontainer builder dan memerlukan input proxy sendiri.
Tugas bootBuildImage Gradle
Dalam build.gradle Groovy dengan tugas bootBuildImage Spring Boot yang sudah ada:
tasks.named("bootBuildImage") {
environment["HTTP_PROXY"] = "http://proxy.example:8080"
environment["HTTPS_PROXY"] = "http://proxy.example:8080"
}
Plugin Maven memakai image.env
Untuk spring-boot:build-image, letakkan nilai-nilai ini di bawah image.env dalam konfigurasi plugin Spring Boot Maven yang ada:
<configuration>
<image>
<env>
<HTTP_PROXY>http://proxy.example:8080</HTTP_PROXY>
<HTTPS_PROXY>http://proxy.example:8080</HTTPS_PROXY>
</env>
</image>
</configuration>
Lingkungan tugas Gradle dan image.env Maven keduanya memberikan nilai kepada builder. Kedua nama dapat menunjuk perantara HTTP biasa yang sama, termasuk untuk URL artefak HTTPS. Untuk unduhan artefak publik yang diizinkan melalui proxy publik, daftar proxy HTTP menyediakan kandidat untuk nilai builder ini.
Pengaturan ini tidak bergantung pada properti systemProp.http.proxyHost Gradle. Properti itu milik JVM dan tidak mengonfigurasi proses lain di dalam builder secara otomatis.
Daemon Docker harus lebih dulu memperoleh image builder dan runtime yang diperlukan. Kegagalan registry pada tahap yang lebih awal itu memerlukan rute dan konfigurasi registry daemon, bukan variabel yang diberikan kepada buildpack yang belum mulai.
Gunakan endpoint proxy yang dapat dijangkau dari kontainer builder. Alamat loopback-nya mengidentifikasi kontainer itu, belum tentu workstation pengembang.
Jaga juga lingkungan runtime aplikasi akhir tetap disengaja. Akses saat build dan rute yang dipakai ketika aplikasi berjalan nanti adalah keputusan konfigurasi yang terpisah.