Creazione di un'applicazione Go

Specifica della versione Go

Per impostazione predefinita, il buildpack Go utilizza l'ultima versione stabile del compilatore Go. Se la tua applicazione richiede una versione specifica, puoi utilizzare la variabile di ambiente GOOGLE_GO_VERSION per fornire un vincolo del server che verrà utilizzato per selezionare una versione di Go disponibile.

pack build sample-go --builder=gcr.io/buildpacks/builder \
  --env GOOGLE_GO_VERSION="17.x.x"

Flag di compilazione

Il buildpack Go compila l'origine dell'applicazione in un file eseguibile utilizzando go build command. Per configurare il comportamento della build puoi utilizzare le seguenti variabili di ambiente:

  • GOOGLE_BUILDABLE Specifica il percorso di un'unità generabile. Esempio: ./maindir per Go creerà il pacchetto rooted a maindir.

  • GOOGLE_CLEAR_SOURCE Ometti il codice sorgente dall'immagine dell'applicazione. Se l'applicazione dipende da file statici, ad esempio da modelli Go, l'impostazione di questa variabile potrebbe causare un malfunzionamento dell'applicazione. Esempio: true, True, 1 cancelleranno l'origine.

  • GOOGLE_GOGCFLAGS Passato a go build e go run come valore -gcflags senza interpretazione. Esempio: all=-N -l consente l'analisi race condition e cambia il modo in cui i percorsi dei file di origine vengono registrati nel programma binario.

  • GOOGLE_GOLDFLAGS Superato il limite per la build e l'esecuzione come valore -ldflags senza interpretazione. Esempio: -s -w viene utilizzato per eliminare e ridurre le dimensioni binarie.

Gestione delle dipendenze

Ti consigliamo di utilizzare i moduli Go per gestire le dipendenze nella tua app Go. Il buildpack Go utilizza il comando go build per creare l'app e pertanto corrisponde al comportamento di Go stesso. Per assicurarti che l'app utilizzi la modalità sensibile ai moduli, devi includere un file go.mod nella root dell'applicazione.

Dipendenze di fornitori

Il fornitore copia i pacchetti utilizzati dalla tua app nella directory dell'applicazione anziché scaricare i moduli dalle rispettive origini durante il processo di compilazione. Go fornisce il comando go build al fornitore dei pacchetti necessari per la tua app in una directory denominata vendor nella directory root dell'app.

Configura il punto di ingresso dell'applicazione

Per impostazione predefinita, il buildpack Go configura la voce del container dell'applicazione che richiama l'eseguibile main generato durante la compilazione dell'origine dell'applicazione. Se devi eseguire l'override di questa impostazione, puoi fornire un valore Procfile o passare la variabile di ambiente GOOGLE_ENTRYPOINT.

Variabili di ambiente

Il buildpack Go supporta le seguenti variabili di ambiente per personalizzare il container

Consulta la documentazione di Go sulle variabili di ambiente

Esempio: GOFLAGS=-flag=value passa -flag=value a go i comandi.