Mantieni tutto organizzato con le raccolte
Salva e classifica i contenuti in base alle tue preferenze.
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 d'ambiente GOOGLE_GO_VERSION per fornire un vincolo semver che verrà utilizzato per selezionare una versione di Go disponibile.
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 consente di cancellare l'origine.
GOOGLE_GOGCFLAGS
Trasmesso a go build e go run come valore -gcflags senza interpretazione.
Esempio: all=-N -l abilita l'analisi delle condizioni di gara 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 specificare 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 ingresso 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 valore 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
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 2025-09-04 UTC."],[[["\u003cp\u003eThe Go buildpack defaults to the latest stable Go version, but you can specify a different version using the \u003ccode\u003eGOOGLE_GO_VERSION\u003c/code\u003e environment variable with a semver constraint.\u003c/p\u003e\n"],["\u003cp\u003eCompilation behavior can be configured via environment variables like \u003ccode\u003eGOOGLE_BUILDABLE\u003c/code\u003e to specify a buildable path, \u003ccode\u003eGOOGLE_CLEAR_SOURCE\u003c/code\u003e to omit source code, and \u003ccode\u003eGOOGLE_GOGCFLAGS\u003c/code\u003e/\u003ccode\u003eGOOGLE_GOLDFLAGS\u003c/code\u003e to pass custom flags.\u003c/p\u003e\n"],["\u003cp\u003eThe buildpack utilizes Go modules for dependency management, recommending the inclusion of a \u003ccode\u003ego.mod\u003c/code\u003e file in your application's root directory for module-aware mode.\u003c/p\u003e\n"],["\u003cp\u003eVendoring dependencies is supported by including a \u003ccode\u003evendor\u003c/code\u003e directory in the app's root, using the \u003ccode\u003ego build\u003c/code\u003e command to collect dependencies.\u003c/p\u003e\n"],["\u003cp\u003eYou can override the default application entrypoint (the compiled \u003ccode\u003emain\u003c/code\u003e executable) by providing a \u003ccode\u003eProcfile\u003c/code\u003e or using the \u003ccode\u003eGOOGLE_ENTRYPOINT\u003c/code\u003e environment variable.\u003c/p\u003e\n"]]],[],null,["# Building a Go application\n\nSpecifying the Go Version\n-------------------------\n\nBy default the Go buildpack uses the latest stable version of the Go compiler. If your application requires a specific version, you can use the `GOOGLE_GO_VERSION` environment variable to provide a semver constraint that will be used to select an available Go version. \n\n pack build sample-go --builder=gcr.io/buildpacks/builder \\\n --env GOOGLE_GO_VERSION=\"17.x.x\"\n\nCompilation Flags\n-----------------\n\nThe Go buildpack compiles your application source into an executable using the `go build command`. The following environment variables can be used to configure the build behavior:\n\n- `GOOGLE_BUILDABLE`\n Specifies path to a buildable unit.\n Example: `./maindir` for Go will build the package rooted at `maindir`.\n\n- `GOOGLE_CLEAR_SOURCE`\n Omit the source code from the application image. If the application depends on static files, such as Go templates, setting this variable may cause the application to misbehave.\n Example: `true`, `True`, `1` will clear the source.\n\n- `GOOGLE_GOGCFLAGS`\n Passed to `go build` and `go run` as `-gcflags` value with no interpretation.\n Example: `all=-N -l` enables race condition analysis and changes how source filepaths are recorded in the binary.\n\n- `GOOGLE_GOLDFLAGS`\n Passed to go build and go run as `-ldflags` value with no interpretation.\n Example: `-s -w` is used to strip and reduce binary size.\n\nManaging Dependencies\n---------------------\n\nWe recommend that you use [Go modules](https://go.dev/blog/using-go-modules) to manage dependencies in your Go app. The Go buildpack uses the `go build` command to build your app and therefore matches the behavior of Go itself. To ensure that your app uses module-aware mode, you should include a `go.mod` file in your application root.\n\n### Vendoring dependencies\n\nVendoring copies the packages your app uses into the application directory instead of downloading modules from their sources during the build process. Go provides the go build command [to vendor the packages your app needs](https://pkg.go.dev/cmd/go#hdr-Modules_and_vendoring) into a directory named `vendor` in your app's root directory.\n\nConfigure the Application Entrypoint\n------------------------------------\n\nBy default, the Go buildpack will configure the application container entry invoke the `main` executable produced when compiling your application source. If you need to override this, you can do so by providing a `Procfile` or passing the `GOOGLE_ENTRYPOINT` environment variable.\n\nEnvironment Variables\n---------------------\n\nThe Go buildpack supports the following environment variables to customize your container\n\n### GO\n\nSee Go documentation on [Environment Variables](https://pkg.go.dev/cmd/go#hdr-Environment_variables)\n\n**Example:** `GOFLAGS=-flag=value` passes `-flag=value` to `go` commands."]]