Creazione di un'applicazione Go

Specificare la versione di Go

Per impostazione predefinita, il buildpack 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 di compilazione

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

  • GOOGLE_BUILDABLE Specifica il percorso di un'unità compilabile. Esempio: ./maindir per Go compilerà il pacchetto con root 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 potrebbe causare un comportamento anomalo dell'applicazione. Esempio: true, True, 1 cancella l'origine.

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

  • GOOGLE_GOLDFLAGS Trasmesso a go build e go run come valore -ldflags senza interpretazione. Esempio: -s -w viene utilizzato per rimuovere e ridurre le dimensioni del file binario.

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 compilare l'app e quindi corrisponde al comportamento di Go stesso. Per assicurarti che la tua app utilizzi la modalità consapevole dei moduli, devi includere un file go.mod nella directory principale dell'applicazione.

Dipendenze dal fornitore

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

Configura il punto di ingresso dell'applicazione

Per impostazione predefinita, il buildpack Go configura l'elemento di immissione del contenitore dell'applicazione in modo da richiamare l'eseguibile main prodotto durante la compilazione del codice sorgente dell'applicazione. Se devi eseguire l'override, puoi farlo specificando un Procfile o passando la variabile di ambiente GOOGLE_ENTRYPOINT.

Variabili di ambiente

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

VAI

Consulta la documentazione di Go sulle variabili di ambiente

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