Menentukan Versi Go
Secara default, buildpack Go menggunakan compiler Go versi stabil terbaru. Jika aplikasi Anda memerlukan versi tertentu, Anda dapat menggunakan variabel lingkungan GOOGLE_GO_VERSION
untuk memberikan batasan semver yang akan digunakan untuk memilih versi Go yang tersedia.
pack build sample-go --builder=gcr.io/buildpacks/builder \
--env GOOGLE_GO_VERSION="17.x.x"
Flag Kompilasi
Buildpack Go mengompilasi sumber aplikasi Anda menjadi file yang dapat dieksekusi menggunakan go build command
. Variabel lingkungan berikut dapat digunakan untuk mengonfigurasi perilaku build:
GOOGLE_BUILDABLE
Menentukan jalur ke unit yang dapat dibangun. Contoh:./maindir
untuk Go akan membangun paket yang di-root padamaindir
.GOOGLE_CLEAR_SOURCE
Menghapus kode sumber dari image aplikasi. Jika aplikasi bergantung pada file statis, seperti template Go, menyetel variabel ini dapat menyebabkan aplikasi tidak berfungsi sebagaimana mestinya. Contoh:true
,True
,1
akan menghapus sumber.GOOGLE_GOGCFLAGS
Diteruskan kego build
dango run
sebagai nilai-gcflags
tanpa penafsiran. Contoh:all=-N -l
mengaktifkan analisis kondisi race dan mengubah cara jalur file sumber dicatat dalam biner.GOOGLE_GOLDFLAGS
Diteruskan untuk build go dan pengoperasian go sebagai nilai-ldflags
tanpa penafsiran. Contoh:-s -w
digunakan untuk menghapus dan mengurangi ukuran biner.
Mengelola dependensi
Sebaiknya gunakan modul Go untuk mengelola dependensi di aplikasi Go Anda. Go buildpack menggunakan perintah go build
untuk membangun aplikasi Anda sehingga cocok dengan perilaku Go itu sendiri. Untuk memastikan aplikasi Anda menggunakan mode sadar modul, Anda harus menyertakan file go.mod
di root aplikasi.
Dependensi vendoring
Vendoring menyalin paket yang digunakan aplikasi Anda ke dalam direktori aplikasi, dan tidak akan mendownload modul dari sumbernya selama proses build. Go memberi build go perintah untuk mem-vendor paket yang dibutuhkan aplikasi Anda ke direktori bernama vendor
di direktori root aplikasi Anda.
Mengonfigurasi Titik Entri Aplikasi
Secara default, buildpack Go akan mengonfigurasi entri container aplikasi yang memanggil file yang dapat dieksekusi main
yang dihasilkan saat mengompilasi sumber aplikasi Anda. Jika perlu menggantinya, Anda dapat melakukannya dengan memberikan Procfile
atau meneruskan variabel lingkungan GOOGLE_ENTRYPOINT
.
Variabel Lingkungan
Buildpack Go mendukung variabel lingkungan berikut untuk menyesuaikan container Anda
GO
Lihat dokumentasi Go tentang Variabel Lingkungan
Contoh: GOFLAGS=-flag=value
meneruskan -flag=value
ke perintah go
.