Membangun aplikasi Go

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 pada maindir.

  • 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 ke go build dan go 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.