Docker Device Mappings

Ich tauche im Moment ins letzte Jahrtausend ab und automatisiere Abläufe, welche nicht über IP Kommunikation abbildbar sind. 🙂

Der erste Pilot dafür lief auf einem Raspberry Pi:


Darauf lief ein Expect-Script, welches sich an der Minicom bediente und automatisch gewisse Sachen ausführte.

Jetzt wollten wir das Ganze auf einen Server bringen und das Ganze funktionierte nicht mehr wie vorher. Nach einiger Recherche kamen wir dahinter, dass am Raspberry eine aktuellere Version der Minicom installiert war.

Am Server läuft CentOs und irgendwie war ich unfähig, die Minicom auf das gleiche Release wie am Pi zu bringen. 🙁

Ich dachte kurz an Docker und schaute, ob man nicht die ttyUSB0 in den Container bringen kann. Ergebnis: ja, man kann. Und es ist einfacher als gedacht:

docker run --device=/dev/ttyUSB0 *Imagename*

Nachher taucht im Container die ttyUSB0 auf. Eigentlich nicht kompliziert, oder?

root@faadd9042d8b:/# ll /dev/tty*
crw-rw-rw- 1 root root   5, 0 Feb 20 08:20 /dev/tty
crw-rw---- 1 root   18 188, 0 Feb 20 08:41 /dev/ttyUSB0

Also schnell ein Ubuntu Image gestartet, die Minicom und Expect entsprechend installiert und schon lief es wieder.

Vielleicht ist es ja für jemanden nützlich …

Nachtrag:
Man kann auch die ttyUSB1 auf ttyUSB0 mappen.

--device=/dev/ttyUSB1:/dev/ttyUSB0

Dh. die ttyUSB1 vom Docker-Host wird im Container als ttyUSB0 nutzbar.

Liebe Grüße

Falk