Spécifier la version de Go
Par défaut, le buildpack Go utilise la dernière version stable du compilateur Go. Si votre application nécessite une version spécifique, vous pouvez utiliser la variable d'environnement GOOGLE_GO_VERSION
pour fournir une contrainte semver qui servira à sélectionner une version disponible de Go.
pack build sample-go --builder=gcr.io/buildpacks/builder \
--env GOOGLE_GO_VERSION="17.x.x"
Options de compilation
Le buildpack Go compile la source de votre application en un exécutable à l'aide de go build command
. Les variables d'environnement suivantes peuvent être utilisées pour configurer le comportement de la compilation :
GOOGLE_BUILDABLE
: spécifie le chemin d'accès à une unité constructible. Par exemple :./maindir
pour Go créera le package en mode root àmaindir
.GOOGLE_CLEAR_SOURCE
: omet le code source de l'image de l'application. Si l'application dépend de fichiers statiques, tels que des modèles Go, la définition de cette variable peut entraîner un dysfonctionnement de l'application. Par exemple :true
,True
,1
effacent la source.GOOGLE_GOGCFLAGS
: est transmis àgo build
etgo run
en tant que valeur-gcflags
sans interprétation. Par exemple :all=-N -l
active l'analyse de condition de concurrence et modifie la manière dont les chemins de fichiers sources sont enregistrés dans le binaire.GOOGLE_GOLDFLAGS
: est transmis à la compilation et exécution de go en tant que valeur-ldflags
sans interprétation. Par exemple :-s -w
permet de supprimer et de réduire la taille binaire.
Gérer les dépendances
Nous vous recommandons d'utiliser les modules Go pour gérer les dépendances dans votre application Go. Le buildpack Go utilise la commande go build
pour créer votre application et copier le comportement de Go. Pour vous assurer que votre application utilise le mode compatible avec les modules, vous devez inclure un fichier go.mod
à la racine de votre application.
Effectuer un vendoring des dépendances
Le vendoring copie les packages utilisés par votre application dans le répertoire de celle-ci au lieu de télécharger des modules depuis leurs sources pendant le processus de compilation. Go fournit la commande pour procéder au vendoring des packages dont votre application a besoin dans un répertoire nommé vendor
dans le répertoire racine de l'application.
Configurer le point d'entrée de l'application
Par défaut, le buildpack Go configure l'entrée du conteneur d'application et appelle l'exécutable main
produit lors de la compilation de la source de votre application. Si vous devez remplacer ce paramètre, vous pouvez fournir une variable Procfile
ou transmettre la variable d'environnement GOOGLE_ENTRYPOINT
.
Variables d'environnement
Le buildpack Go est compatible avec les variables d'environnement suivantes pour personnaliser votre conteneur :
GO
Consultez la documentation Go sur les variables d'environnement.
Exemple : GOFLAGS=-flag=value
transmet -flag=value
aux commandes go
.