Moin!
Beruflich wie privat habe ich immer wieder das Problem, dass mir Werkzeuge in Docker Containern fehlen, wenn ich etwas debuggen will. Daher habe ich angefangen, einige Werkzeuge wie busybox, curl und tcpdump statisch zu bauen. Sprich das Programm als einzelne Datei ohne Abhängigkeiten zu bauen. Download, starten, funktioniert.
Probiert es gerne mal aus:
https://files.serverless.industries/bin/
Dazu kam noch die Idee, das ganze auch gleich für ARM und ARM64 bereit zu stellen.
Leider ist es gar nicht so einfach. Manche Programme lassen sich in einem Debian (wo alle Toolchains für cross compiling zur Verfügung stehen) nicht statisch compilieren. Ich vermute, weil dort immer systemd oder eine andere lib in den Abhängigkeiten drin sind.
Bei tcpdump habe ich das so gelöst, dass ich libpcap und tcpdump selbst an den Debian Repos vorbei direkt aus den Tarballs von den tcpdump Entwicklern gebaut habe. Bei curl habe ich ein vorhandenes Projekt gefunden, was statt Debian ein Alpine benutzt.
In Alpine wiederum fehlt so wie es aussieht der Cross Compiler.
Habt Ihr da Erfahrungen?