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.
pack build sample-go --builder=gcr.io/buildpacks/builder \
--env GOOGLE_GO_VERSION="17.x.x"
Marcas de compilación
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_BUILDABLEEspecifica la ruta de acceso a una unidad compilable. Ejemplo:./maindirpara Go compilará el paquete con permisos de administrador enmaindir.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,1borrará la fuente.GOOGLE_GOGCFLAGSSe pasó ago buildygo runcomo valor-gcflagssin interpretación. Ejemplo:all=-N -lhabilita 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_GOLDFLAGSSe pasó a compilar y ejecutar como valor-ldflagssin interpretación. Ejemplo:-s -wse 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
GO
Consulta la documentación de Go sobre las variables de entorno.
Ejemplo: GOFLAGS=-flag=value pasa los comandos -flag=value a go.