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.

Artikel terkait