de Programmieren Sprachen Golang

Golang - Statisches binary bauen

Möchte man sein in Go geschriebenes Programm woanders ausführen, kann es sein dass ein Go build Befehl nicht ausreicht, da die Abhängigkeiten trotzdem benötigt werden. Um das zu vermeiden kann man sein Go-Programm auch statisch bauen um damit zum Beispiel ein Docker-Image zu fertigen. Dafür geht man in das Verzeichnis mit dem Go-Programm und führt folgenden Befehl aus. Dieser erstellt einem dann das fertig statisch compilierte Programm mit dem Namen des Verzeichnisses.

1CGO_ENABLED=0 GOOS=linux go build -a -ldflags '-extldflags "-static"' .

Wichtig hierbei ist, dass mittels GOOS das Ziel auf Linux gestellt wird auch wenn wir auf einem anderen Betriebssystem unterwegs sind. Als nächstes wird CGO deaktiviert, sollten wir also eine Abhängigkeit haben, die das voraussetzt wird dieser Befehl nicht so richtig funktionieren.