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 bei- maindir.
- 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_GOGCFLAGSWird- go buildund- go 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.