TVHeadend als Docker-Container

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
Hi
nachdem mir das TVHeadend-Paket von http://syno.dierkse.nl immer wieder Probleme gemacht hat,
in Form von vergessen aller Einstellungen oder ändern/zurücksetzen von Nutzerpasswörtern nach Paket-Updates,
versuche ich mich jetzt daran, das ganze als Docker Container zum laufen zu bringen.

Ich versuche mich am dreamcat4/tvheadend:testing von hier: https://hub.docker.com/r/dreamcat4/tvheadend/
In der Readme steht auch ganz gut beschrieben wie man vorgehen muss: https://github.com/dreamcat4/docker-images/blob/master/tvh/README.md

Paket ist installiert, Volumes sind gemappt (/config und /recordings) und Ports sind zugewiesen (9981,9982).
Auf die Webseite komme ich auch, werde allerdings gleich nach den Benutzerdaten gefragt.
Und da ist auch gleich die erste Hürde.
Welche sind das? Wie stelle ich das ein? Gibt es dazu Env-Variablen?
Überschreibe ich einfach den Standard-Aufruf mit -C oder wie das ist, damit ich keine Benutzerauthentifizierung habe?

Hat schon jemand Erfahrungen mit TVHeadend und Docker?

Gruß
 

4bob

Benutzer
Mitglied seit
04. Mai 2016
Beiträge
604
Punkte für Reaktionen
2
Punkte
38
Hi,
Das findest du im Source Repository;
Setzen kannst das nicht es wird beim erstellen vom Container übernommen und eine Anmeldung am WI (Port 9981) erfolgt bei mir ohne Eingabe (No verified access).

Angenommen du hast dir die Version Stable heruntergeladen
https://github.com/dreamcat4/docker...sscontrol/def0ad0acc0000000000000000000000#L5
Wurde dieser Autologin (admin) definiert:
user: *
Passwort: VFZIZWFkZW5kLUhpZGUtKg==

Bob
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
OK danke schonmal für den Hinweis.
Da liegt gleich das nächste Problem. In meinem /config Ordner gibt es den Ordner "users" nicht.
Dementsprechend auch kein Ordner "admin" und "accesscontrol" mit der Datei in dem der Default User steht.

Schau mir grad auch mal das log an. Gibt da auch den ein oder anderen Error:
Rich (BBCode):
date	stream	content
2017-02-06 22:05:56	stdout	2017-02-06 22:05:56.196 [ NOTICE] START: HTS Tvheadend version 4.0.9-17~gc2981e2 started, running as PID:167 UID:9981 GID:9981, CWD:/ CNF:/config
2017-02-06 22:05:56	stdout	2017-02-06 22:05:56.196 [   INFO] epggrab: module /usr/bin/tv_grab_uk_tvguide created
...
2017-02-06 22:05:56	stdout	2017-02-06 22:05:56.196 [   INFO] epggrab: module /usr/bin/tv_grab_ar created
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.032 [  ERROR] spawn: perl: warning: Falling back to the standard locale ("C").
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.032 [  ERROR] spawn:     are supported and installed on your system.
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.032 [  ERROR] spawn: 	LANG = "de_DE.UTF-8"
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.032 [  ERROR] spawn: 	LC_ALL = (unset),
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.032 [  ERROR] spawn: 	LANGUAGE = (unset),
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.032 [  ERROR] spawn: perl: warning: Please check that your locale settings:
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.032 [  ERROR] spawn: perl: warning: Setting locale failed.
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.029 [   INFO] spawn: Executing "/usr/bin/tv_find_grabbers"
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.028 [   INFO] epggrab: module xmltv created
...
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.020 [   INFO] epggrab: module eit created
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.020 [  ERROR] access: No access entries loaded
2017-02-06 22:05:51	stdout	2017-02-06 22:05:51.019 [   INFO] dvr: Creating new configuration ''
2017-02-06 22:05:50	stdout	2017-02-06 22:05:50.615 [   INFO] scanfile: ATSC - loaded 2 regions with 14 networks
2017-02-06 22:05:50	stdout	2017-02-06 22:05:50.615 [   INFO] scanfile: DVB-C - loaded 17 regions with 56 networks
2017-02-06 22:05:50	stdout	2017-02-06 22:05:50.615 [   INFO] scanfile: DVB-S - loaded 1 regions with 112 networks
2017-02-06 22:05:50	stdout	2017-02-06 22:05:50.615 [   INFO] scanfile: DVB-T - loaded 43 regions with 1106 networks
2017-02-06 22:05:50	stdout	2017-02-06 22:05:50.316 [   INFO] config: loaded
2017-02-06 22:05:50	stdout	2017-02-06 22:05:50.192 [   INFO] main: Log started
2017-02-06 22:05:50	stdout	+ /usr/bin/tvheadend -u hts -g hts -c /config
2017-02-06 22:05:50	stdout	+ _tvheadend_args='-u hts -g hts -c /config'
2017-02-06 22:05:50	stdout	+ umask 0
2017-02-06 22:05:50	stdout	+ '[' '' ']'
2017-02-06 22:05:50	stdout	/var/lib/dpkg/info/tzdata.config: 334: /var/lib/dpkg/info/tzdata.config: cannot create /etc/timezone: Directory nonexistent
2017-02-06 22:05:49	stdout	locale: Cannot set LC_ALL to default locale: No such file or directory
2017-02-06 22:05:49	stdout	locale: Cannot set LC_MESSAGES to default locale: No such file or directory
2017-02-06 22:05:49	stdout	locale: Cannot set LC_CTYPE to default locale: No such file or directory
2017-02-06 22:05:49	stdout	perl: warning: Falling back to the standard locale ("C").
2017-02-06 22:05:49	stdout	    are supported and installed on your system.
2017-02-06 22:05:49	stdout	LANG = "de_DE.UTF-8"
2017-02-06 22:05:49	stdout	LC_ALL = (unset),
2017-02-06 22:05:49	stdout	LANGUAGE = (unset),
2017-02-06 22:05:49	stdout	perl: warning: Please check that your locale settings:
2017-02-06 22:05:49	stdout	perl: warning: Setting locale failed.
2017-02-06 22:05:49	stdout	+ dpkg-reconfigure -f noninteractive tzdata
2017-02-06 22:05:49	stdout	+ '[' 1024:100 = 0:0 ']'
2017-02-06 22:05:49	stdout	++ stat -c %u:%g /recordings
2017-02-06 22:05:49	stdout	+ chown -R hts:hts /config
2017-02-06 22:05:49	stdout	+ '[' '' ']'
2017-02-06 22:05:49	stdout	+ '[' '' ']'
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Darf ich dir empfehlen auf dieses Image umzusteigen: https://hub.docker.com/r/linuxserver/tvheadend/
Ich verwende es zwar nicht, aber in der Regel sind die Images von Linuxserver.io besser gemacht und zuverlässiger als andere..

Du wirst - egal bei welchem Image - deine DVB-* Kart aber nicht über die UI einbinden können, da dort kein äquivalent zu --device /dev/xyz existiert.
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
OK, danke für den Tipp!
Habe jetzt das "latest" image von Linuxserver.io genommen (aktuell 4.1.2415), das läuft schon mal einwandfrei auch mit Oberfläche ;)

Jetzt kommt das besagte Problem mit dem Device ... soweit hab ich bis dato noch nicht gedacht.
Ich kann aus dem Image zwar mittels Console ein neuen Container bauen (docker create ...) und die Devices dort angeben, jedoch muss ich mich hier auch erstmal um Treiber kümmern :/
 

weismat

Benutzer
Mitglied seit
30. Jun 2009
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Ich habe das Image bei mir geladen - komme allerdings nicht auf das Web-Interface. Wie startet Ihr das Docker Image? Mittels Kommandozeile?
 

HansGugg

Benutzer
Mitglied seit
22. Jan 2013
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Funktioniert bei mir leider nicht: Beim Befehl
docker container exec -it $(docker container ls -q --filter=name=tvheadend) /bin/bash

meckert es mit "
end) /bin/bash
"docker container exec" requires at least 2 arguments.
See 'docker container exec --help'."

rum.
Kann mir jemand helfen?
 

3x3cut0r

Benutzer
Mitglied seit
21. Mai 2011
Beiträge
507
Punkte für Reaktionen
15
Punkte
44
probiers einfach mal so:
docker container exec -it tvheadend /bin/bash
 

HansGugg

Benutzer
Mitglied seit
22. Jan 2013
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Habe jetzt erst mal alles gelöscht und arbeite mich wieder durch. An der entsprechenden Stelle werde ich es abändern. Vielen Dank für deine Antwort. Melde mich dann wieder.:)
 

HansGugg

Benutzer
Mitglied seit
22. Jan 2013
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
So alles nochmal auf Null gestellt und beim Container installieren kommt folgende Fehlermeldung:

Digest: sha256:ab2f9088fd2601808ffde73cb7648e83778eaf8af777c9fdf3bb527c4a0585b4
Status: Downloaded newer image for linuxserver/tvheadend:amd64-latest
1334a88d335cf5fdabf4b9e048d7a517d0f172d4bce0d4c73de9729ffd9ba9fb
docker: Error response from daemon: linux runtime spec devices: error gathering device information while adding custom device "/dev/dri": no such file or directory.

Das heißt wohl, dass das neue Image den Pfad /dev/dri nicht mehr hat. Und nun? :eek: Wird dann nicht mehr gerendert?
 

HansGugg

Benutzer
Mitglied seit
22. Jan 2013
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Habe auf der Synology (DS 2419+) nachgeschaut. Der Docker lässt sich auch nicht laden. Fehlermeldung; Docker API ist fehlgeschlagen.

Wäre es eine gute Idee einfach den Docker wieder zu löschen und den Befehl wie folgt zu modifizieren:

docker container run -d --restart always \
--name tvheadend \
--network tvheadend-net \
-e PUID=1024 \
-e PGID=100 \
-e TZ=Europe/Berlin \
-p 9981:9981 \
-p 9982:9982 \
-v /volume1/video/recordings:/recordings \
-v /volume1/docker/tvheadend/config:/config \
-v /volume1/docker/tvheadend/picons:/picons \
-v /volume1/docker/tvheadend/sundtek:/sundtek \
-v /etc/localtime:/etc/localtime:ro \
--device /dev/dvb:/dev/dvb \
--device=/dev/bus/usb \
linuxserver/tvheadend:amd64-latest

Aber was ist dann mit dem Video Rendern?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Der Docker lässt sich auch nicht laden.
Der Satz ist semantisch gleich mehrfach schwierig... Meinst Du damit das Du aus dem Image keinen Container erzeugen kannst? Oder der erzeugte Container nicht startet bzw. gleich wieder terminiert? Oder etwas ganz anderes?

Aus Mangel an Angabe der Fehlermeldung fallen mir folgende Kontrollfragen ein:
Wurde der Befehl as root bzw. als nicht root mit `sudo` ausgeführt? Gibt es das Netzwerk "tvheadend-net"?, Gibt es die Pfade auf /volume1? Ist die Syntax "--device=/dev/bus/usb" überhaupt zulässig und existieren die Geräte überhaupt auf dem Host?
 

HansGugg

Benutzer
Mitglied seit
22. Jan 2013
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Oh sorry. Wenn ich auf die graphische Oberfläche der Syno gehe und Docker öffne. Dann gibt es den Container TVHeadend, aber der ist angehalten. Starten kann ich ihn nicht, dann kommt die besagte Fehlermeldung.

Aus Mangel an Angabe der Fehlermeldung fallen mir folgende Kontrollfragen ein:
Wurde der Befehl as root bzw. als nicht root mit `sudo` ausgeführt?
Antwort: erst als admin angemeldet, dann mit sudo su Rechte erteilt.

Gibt es das Netzwerk "tvheadend-net"?
Ja, gibt es, taucht im Reiter Container Netzwerk auf und verbindet angeblich einen Container
, Gibt es die Pfade auf /volume1?
Ganz viele natürlich, aber vor allem die hier relevanten Pfade "volume1/docker/config", "volume1/docker/picons" und "volume1/docker/sundtek"

Ist die Syntax "--device=/dev/bus/usb" überhaupt zulässig und existieren die Geräte überhaupt auf dem Host? Das weiß ich nicht, wird aber im
TvHeadend mit Docker und Sundtek SkyTV Ultimate – Synology Wiki (synology-wiki.de) so angegeben.

Ist das jetzt semantisch etwas besser?
 
Zuletzt bearbeitet:

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
Die Schwierigkeit an dem Satz lag eher daran das ein Container kein "Docker" ist und das "nicht laden" uneindeutig.

Der Wiki-Beitrag (auch dort finde ich "Container installieren" schwierig, weil tatsächlich keine Installation stattfindet) hat in der Erläuterung folgendes stehen:
  • --device /dev/dri:/dev/dri reicht das Gerät /dev/dri an den Container weiter. Dieses Gerät ist für das Video Rendern zuständig.
  • --device /dev/dvb:/dev/dvb reicht die Geräte in /dev/dvb an den Container weiter. Diese Geräte repräsentieren die Sundtek SkyTV Ultimate Karte.
  • --device /dev/bus/usb:/dev/bus/usb reicht den USB-Bus an den Container weiter. Ohne das ist der Sundtek-Treiber nicht fähig die Sat-Karte anzusprechen.
Während obiges nach korrekter Syntax aussieht, sieht die Angabe im "docker run" fehlerhaft aus.
 

HansGugg

Benutzer
Mitglied seit
22. Jan 2013
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Hmm, jetzt blick ich gar nicht mehr durch. In dem oben erwähnten Wikiartikel heißte der Befehl so:

docker container run -d --restart always \
--name tvheadend \
--network tvheadend-net \
-e PUID=1024 \
-e PGID=100 \
-e TZ=Europe/Berlin \
-p 9981:9981 \
-p 9982:9982 \
-v /volume1/video/recordings:/recordings \
-v /volume1/docker/tvheadend/config:/config \
-v /volume1/docker/tvheadend/picons:/picons \
-v /volume1/docker/tvheadend/sundtek:/sundtek \
-v /etc/localtime:/etc/localtime:ro \
--device /dev/dri:/dev/dri \
--device /dev/dvb:/dev/dvb \
--device=/dev/bus/usb \
linuxserver/tvheadend:amd64-latest


Was mir jetzt auffällt ist die unterschiedliche Syntax in den --device Zeilen. Das letzte (usb) hat ein Gleichheitszeichen, die anderen beiden nicht. Vielleicht probiere ich mal alles mit Gleichheitszeichen?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.519
Punkte für Reaktionen
404
Punkte
103
... und in der Beschreibung dadrunter steht das was ich in meinem letzten Post gequotet habe.

Aber wenn man sich die Doku zu docker run --device ansieht, dann ist zu erkennen, dass die Syntax --device=/dev/xxx verwendet wird, wenn das Gerät im Host und Container identisch heissen und die Syntax --device=/dev/xxx:/dev/yyyverwendet wird, wenn das Gerät im Container anders heissen soll als auf dem Host - wobei letzteres sicherlich auch verwendet werden kann kann, wenn das Gerät im Host und Container identisch heissen sollten.

Demnach wäre folgendes korrekt und ausreichend (sofern die Geräte auf dem Host existieren):
Code:
--device=/dev/dri \
--device=/dev/dvb \
--device=/dev/bus/usb \

Ob die Geräte existieren kann man so herausfinden: ls /dev/{dri,dvb,bus/usb}
Wenn benötigte Geräte hier nicht aufgeführt sind, dann sollte das zuerst behoben werden.
 

HansGugg

Benutzer
Mitglied seit
22. Jan 2013
Beiträge
52
Punkte für Reaktionen
0
Punkte
6
Das Bild ist vollständig.
/Dev/dri gibt es nicht, dass war ja die Ausgangsfehlermeldung. Ich versuche es mal mit deiner Korrektur, Haydibe.
 

Anhänge

  • Screenshot 2.jpg
    Screenshot 2.jpg
    21,9 KB · Aufrufe: 5


 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat