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_BUILDABLEGibt den Pfad zu einer erstellbaren Einheit an. Beispiel:./maindirfür Go erstellt das Paket im Stammverzeichnis beimaindir.GOOGLE_CLEAR_SOURCELassen 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,1löscht die Quelle.GOOGLE_GOGCFLAGSWirdgo buildundgo runals-gcflags-Wert ohne Interpretation übergeben. Beispiel:all=-N -laktiviert die Analyse von Race-Bedingungen und ändert die Art und Weise, wie Quellpfadpfade im Binärprogramm aufgezeichnet werden.GOOGLE_GOLDFLAGSWird an Go-Build und Go-Run als-ldflags-Wert ohne Interpretation übergeben. Beispiel:-s -wwird 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.