Especificar la versión de Go
De forma predeterminada, el paquete de compilación de Go usa la última versión estable del compilador de Go. Si tu aplicación requiere una versión específica, puedes usar la variable de entorno GOOGLE_GO_VERSION
para proporcionar una restricción de 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 el código fuente de tu aplicación en un archivo ejecutable mediante go build command
. Se pueden usar las siguientes variables de entorno para configurar el comportamiento de la compilación:
GOOGLE_BUILDABLE
Especifica la ruta a una unidad compilable. Por ejemplo,./maindir
para Go compilará el paquete con la raíz enmaindir
.GOOGLE_CLEAR_SOURCE
Omitir el código fuente de la imagen de la aplicación. Si la aplicación depende de archivos estáticos, como plantillas de Go, al definir esta variable puede que la aplicación no funcione correctamente. Ejemplo:true
,True
y1
borrarán el origen.GOOGLE_GOGCFLAGS
Se ha enviado ago build
ygo run
como valor de-gcflags
sin interpretación. Por ejemplo,all=-N -l
habilita el análisis de condiciones de carrera y cambia la forma en que se registran las rutas de los archivos de origen en el archivo binario.GOOGLE_GOLDFLAGS
Se pasa a go build y go run como valor-ldflags
sin interpretación. Ejemplo:-s -w
se usa para eliminar y reducir el tamaño del archivo binario.
Gestionar dependencias
Te recomendamos que uses módulos de Go para gestionar las dependencias de tu aplicación de Go. El paquete de compilación de Go usa el comando go build
para compilar tu aplicación y, por lo tanto, coincide con el comportamiento de Go. Para asegurarte de que tu aplicación usa el modo compatible con módulos, debes incluir un archivo go.mod
en la raíz de la aplicación.
Incluir dependencias de proveedores
El proveedor copia los paquetes que usa tu aplicación 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 go build para incluir los paquetes que necesita tu aplicación en un directorio llamado vendor
en el directorio raíz de tu aplicación.
Configurar 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 para invocar el ejecutable main
que se genera al compilar el origen de la aplicación. Si necesitas anularlo, puedes hacerlo proporcionando un Procfile
o pasando 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 -flag=value
a los comandos de go
.