Go-Version angeben
Standardmäßig verwenden Go-Buildpacks die neueste stabile Version des Go-Compilers. Wenn Ihre Anwendung eine bestimmte Version erfordert, können Sie mit der GOOGLE_GO_VERSION
-Umgebungsvariablen eine semver-Einschränkung bereitstellen, die zum Auswählen einer verfügbaren Go-Version verwendet wird.
pack build sample-go --builder=gcr.io/buildpacks/builder \
--env GOOGLE_GO_VERSION="17.x.x"
Kompilierungs-Flags
Das Go-Buildpack kompiliert die Anwendungsquelle mithilfe des go build command
in eine ausführbare Datei. Mit folgenden Umgebungsvariablen können Sie das Build-Verhalten konfigurieren:
GOOGLE_BUILDABLE
Gibt den Pfad zu einer erstellbaren Einheit an. Beispiel:./maindir
für Go erstellt das Paket im Stammverzeichnis beimaindir
.GOOGLE_CLEAR_SOURCE
Lassen Sie den Quellcode aus dem Anwendungs-Image weg. Wenn die Anwendung auf statische Dateien wie Go-Vorlagen angewiesen ist, kann das Festlegen dieser Variablen dazu führen, dass die Anwendung nicht mehr korrekt funktioniert. Beispiel:true
,True
,1
löscht die Quelle.GOOGLE_GOGCFLAGS
Wirdgo build
undgo run
als-gcflags
-Wert ohne Interpretation übergeben. Beispiel:all=-N -l
aktiviert die Analyse von Race-Bedingungen und ändert die Art und Weise, wie Quellpfadpfade im Binärprogramm aufgezeichnet werden.GOOGLE_GOLDFLAGS
Wird an Go-Build und Go-Run als-ldflags
-Wert ohne Interpretation übergeben. Beispiel:-s -w
wird zur Reinigung und zur Verringerung der Binärgröße verwendet.
Abhängigkeiten verwalten
Wir empfehlen die Verwendung von Go-Modulen zur Verwaltung von Abhängigkeiten in Ihrer Go-Anwendung. Der Go-Buildpack verwendet den go build
-Befehl, um Ihre Anwendung zu erstellen, und entspricht daher dem Verhalten von Go selbst. Damit die Anwendung den modulbasierten Modus verwendet, sollten Sie im Stammverzeichnis der Anwendung eine go.mod
-Datei einfügen.
Abhängigkeiten von Anbietern
Vendoring kopiert die von Ihrer Anwendung verwendeten Pakete in das Anwendungsverzeichnis, anstatt Module während des Build-Prozesses aus ihren Quellen herunterzuladen. Mit dem Go-Befehl werden die für Ihre Anwendung erforderlichen Pakete in einem Verzeichnis namensvendor
im Stammverzeichnis Ihrer Anwendung gehostet.
Anwendungs-Einstiegspunkt konfigurieren
Standardmäßig konfiguriert der Go-Buildpack den Containereintrag der Anwendung so, dass die ausführbare main
-Datei aufgerufen wird, wenn Sie die Anwendungsquelle kompilieren. Wenn Sie dies außer Kraft setzen möchten, können Sie dazu ein Procfile
angeben oder die Umgebungsvariable GOOGLE_ENTRYPOINT
übergeben.
Umgebungsvariablen
Der Go-Buildpack unterstützt folgende Umgebungsvariablen, um Ihren Container anzupassen
GO
Siehe die Go-Dokumentation unter Umgebungsvariablen
Beispiel: GOFLAGS=-flag=value
übergibt -flag=value
an go
-Befehle.