Go-Anwendung erstellen

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 bei maindir.

  • 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 Wird go build und go 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.