1. Squeezelite Container starten, inkl. durchgereichter USB-Karte (Die übliche Logilink 7.1)
Als Image habe ich aschamberger/squeezelite verwendet, da die Umgebungs-Variablen hier so schön simpel dargestellt werden.
Zuerst ein Volume anlegen, um die Config permanent speichern zu können:
volume.png
Das Durchreichen der Sounddevices war simpel:
Device.png
Oder wie im Dockerhub angegeben:
--device=/dev/snd/
Mit den entsprechenden ENVs gestartet:
ENV.png
Das OUTPUT_DEVICE war zu Beginn nicht genau klar, welches Format hier erwartet wird. Die Lösung: Container starten (trotz Fehler in den Logs, dass das Output Device fehlt) und ins Terminal wechseln (Ich verwende Portainer, also "Console"). Hier zeigt "squeezelite -l" die Devices passend an.
Jetzt findet der LMS den Player auch, und kann bereits Musik abspielen. Aber natürlich nur für eine Instanz
Nächste Schritte:
- Die Kanäle aufsplitten (vermutlich am Host vorzunehmen)
- Entweder den Container um weitere Instanzen erweitern, oder, wenn möglich, ein Squeeze-Docker pro Kanal?
Ergänzung:
Habe den Host um die /etc/asound.conf erweitert. Leider kann das Docker-Image "stereofront" nicht als sounddevice finden, obwohl es squeezelite dieses ebenfalls über den Parameter "-o" übergibt.
output_init_common:384 unable to open output device: stereofront
Ergänzung #2:
Die Änderung ist bezaubernd einfach: /etc/asound.conf als readonly mappen:
-v /etc/asound.conf:/etc/asound.conf:ro
Ergänzung #3:
Mittlerweile steht auch die Verkabelung zum Badezimmer. Beim Versuch, auch dafür eine Dockerinstanz zu erstellen ist mir aufgefallen, dass scheinbar nur ein Container gleichzeitig auf das Sounddevice zugreifen kann. "Device busy" kommt bei zusätzlichen Instanzen zurück.
Dh. wieder zurück auf Null, entweder finde ich direkt ein Squeezelite Image, das mehrere Instanzen über die ENV unterstützt, ich passe meinen bestehenden Container an (dann sind die Änderungen aber weg, sobald ich das Image update) oder forke am Ende ein eigenes Image =D
Ergänzung #4:
Nach etwas Recherche:
Code:
& /sbin/setuser nobody /usr/bin/squeezelite -n "OG Bad" -o monosurroundl -a 80:::0: -m fe:6d:e8:59:5f:5c
/etc/service/squeezelite/run/squeezelite.sh
Jetzt läufts =) Natürlich kann über die Umgebungsvariablen nur der erste Player angepasst werden und ein Imageupdate überlebt es auch nicht - für mich aber erstmal perfekt so!




Einen Kommentar schreiben: