Zum Hauptinhalt springen
  1. Projekte und Blogs/

Offline Docker Patch Hack: Jetson-Kameras ohne Internet updaten

·377 Wörter·
Docker Jetson Embedded Devops Case-Study
Oliver Hihn
Autor
Oliver Hihn
Getrieben von Neugier, angetrieben von Code. Ich entwerfe und baue individuelle Technik mit Leidenschaft und Zweck.
Inhaltsverzeichnis

Offline-Docker-Hacks: Jetson-Kameras ohne Internet patchen
#

Manche IT-Projekte bleiben hängen, weil sie einem zeigen, wie kreativ man manchmal werden muss. Vor kurzem hatte ich genau so ein Erlebnis: ein Kunde mit einem komplett vom Internet getrennten System, betrieben in einer Umgebung, in der nicht einmal ein mobiler Hotspot realisierbar war.

Die Herausforderung:

  • Auf den Geräten liefen Embedded Jetson-Kameras für AI-Vision.
  • Wir mussten ein paar Python-Files und eine Konfigurationsdatei ändern.
  • Die Images extern zu bauen und hineinzuschleusen war logistisch unpraktikabel.
  • Die Kameras selbst auszubauen war ausgeschlossen.

Das Einzige, was wir hatten, war SSH-Zugriff auf die Kameras.


Lösung: Docker-Images direkt auf dem Gerät patchen
#

Ich habe mich für einen pragmatischen Ansatz entschieden: die Änderungen direkt ins bestehende Image integrieren.

IMAGE="worker-camera"
docker tag $IMAGE:latest $IMAGE:backup
docker create --name tmp $IMAGE:latest
docker cp files_to_patch/. tmp:/app/
docker commit tmp $IMAGE:latest
docker rm tmp

Schritt-für-Schritt erklärt
#

  1. Variable setzen Eine kleine Helfer-Variable (IMAGE) spart Tipparbeit und macht den Ablauf bei mehreren Images reproduzierbar.

  2. Backup anlegen Sicherheitshalber wird das aktuelle Image als backup getaggt. Damit haben wir immer einen Fallback.

  3. Container erstellen (ohne Start) Mit docker create wird ein Container auf Basis des Images erstellt, der noch nicht läuft.

  4. Files in den Container kopieren Die zu patchenden Dateien (mit der richtigen Ordnerstruktur) werden in den Container kopiert.

  5. Commit zu einem neuen Image Mit docker commit erstellen wir aus dem Container ein neues Image. Da wir den latest-Tag überschreiben, funktionieren bestehende docker-compose-Files weiterhin ohne Anpassung. Ein docker compose up -d reicht, und die Änderungen sind live.

  6. Aufräumen Der temporäre Container tmp wird gelöscht. Er war nur Mittel zum Zweck.


Warum dieser Ansatz hilfreich war
#

Natürlich ist das nicht der klassische CI/CD-Workflow. In einer „normalen“ Umgebung würden Images automatisiert in Pipelines gebaut, getestet und verteilt.

Aber in dieser restriktiven Offline-Umgebung war die Methode extrem nützlich:

  • Schnelle Iterationen trotz fehlender Internetanbindung
  • Minimal-invasive Änderungen, ohne das ganze Setup neu zu bauen
  • Nahtlose Integration, da Compose-Files unverändert blieben

Fazit
#

Manchmal sind es nicht die großen Architekturen, sondern kleine Workarounds, die ein Projekt am Laufen halten. Dieses Vorgehen wird sicher nicht alltäglich gebraucht – aber es zeigt, wie wichtig Flexibilität und Kreativität in der IT sind.

👉 Für mich war es ein schönes Beispiel dafür, dass praktische Lösungen in Spezialfällen oft wertvoller sind als die perfekte Theorie.