Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
Especifica la versión de Go
De forma predeterminada, el paquete de compilación de Go usa la versión estable más reciente del compilador de Go. Si tu aplicación requiere una versión específica, puedes usar la variable de entorno GOOGLE_GO_VERSION a fin de proporcionar una restricción semver que se usará para seleccionar una versión de Go disponible.
El paquete de compilación de Go compila la fuente de tu aplicación en un ejecutable mediante el go build command. Las siguientes variables de entorno se pueden usar para configurar el comportamiento de compilación:
GOOGLE_BUILDABLE
Especifica la ruta de acceso a una unidad compilable.
Ejemplo: ./maindir para Go compilará el paquete con permisos de administrador en maindir.
GOOGLE_CLEAR_SOURCEOmite el código fuente de la imagen de la aplicación. Si la aplicación depende de archivos estáticos, como las plantillas de Go, configurar esta variable puede provocar que la aplicación se comporte mal.
Ejemplo: true, True, 1 borrará la fuente.
GOOGLE_GOGCFLAGS
Se pasó a go build y go run como valor -gcflags sin interpretación.
Ejemplo: all=-N -l habilita el análisis de condiciones de carrera y cambia la forma en que se registran las rutas de archivos de origen en el objeto binario.
GOOGLE_GOLDFLAGS
Se pasó a compilar y ejecutar como valor -ldflags sin interpretación.
Ejemplo: -s -w se usa para quitar y reducir el tamaño del objeto binario.
Administra dependencias
Te recomendamos usar los módulos de Go para administrar las dependencias en la app de Go. El paquete de compilación de Go usa el comando go build para compilar tu app y, por lo tanto, coincide con el comportamiento de Go. Para asegurarte de que tu app use el modo compatible con el módulo, debes incluir un archivo go.mod en la raíz de tu aplicación.
Dependecias de vendoring
Mediante el vendoring, se copian los paquetes que usa tu app en el directorio de la aplicación en lugar de descargar módulos de sus fuentes durante el proceso de compilación. Go proporciona el comando de compilación de go para hacer el vendoring de los paquetes que necesita tu app en un directorio llamado vendor en el directorio raíz de tu app.
Configura el punto de entrada de la aplicación
De forma predeterminada, el paquete de compilación de Go configurará la entrada del contenedor de la aplicación e invocará el ejecutable producido main cuando se compiló la fuente de la aplicación. Si necesitas anular esto, puedes proporcionar un Procfile o pasar la variable de entorno GOOGLE_ENTRYPOINT.
Variables de entorno
El paquete de compilación de Go admite las siguientes variables de entorno para personalizar tu contenedor
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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."]]