Creazione di un'applicazione Go

Specifica della versione di Go

Per impostazione predefinita, il buildpack di Go utilizza la versione stabile più recente del compilatore Go. Se la tua applicazione richiede una versione specifica, puoi utilizzare la variabile di ambiente GOOGLE_GO_VERSION per fornire un vincolo semver 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 compilazione

Il buildpack Go compila l'origine dell'applicazione in un 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à costruibile. Esempio: ./maindir per Go creerà il pacchetto rooted in maindir.

  • GOOGLE_CLEAR_SOURCE Ometti il codice sorgente dall'immagine dell'applicazione. Se l'applicazione dipende da file statici, come i modelli Go, l'impostazione di questa variabile può causare il malfunzionamento dell'applicazione. Esempio: true, True, 1 cancellerà l'origine.

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

  • GOOGLE_GOLDFLAGS È stata superata la creazione e l'esecuzione del valore -ldflags, senza interpretazione. Esempio: -s -w viene utilizzato per rimuovere il codice binario e ridurre le dimensioni binarie.

Gestione delle dipendenze

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

Dipendenze di fornitura

Il fornitore copia i pacchetti utilizzati dall'app nella directory dell'applicazione anziché scaricare i moduli dalle origini durante il processo di compilazione. Go fornisce il comando go build per vendere i pacchetti di cui la tua app ha bisogno in una directory denominata vendor nella directory radice dell'app.

Configura il punto di contatto dell'applicazione

Per impostazione predefinita, il buildpack di Go configura la voce del container dell'applicazione e richiama l'eseguibile main prodotto al momento della compilazione dell'origine dell'applicazione. Se devi eseguire questa operazione, puoi fornire un 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

VAI

Consulta la documentazione di Go sulle variabili di ambiente.

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