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_BUILDABLE
Especifica la ruta de acceso a una unidad compilable. Ejemplo:./maindir
para Go compilará el paquete con permisos de administrador enmaindir
.GOOGLE_CLEAR_SOURCE
Omite 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ó ago build
ygo 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
GO
Consulta la documentación de Go sobre las variables de entorno.
Ejemplo: GOFLAGS=-flag=value
pasa los comandos -flag=value
a go
.