Docker-Bausteine für VDR

  • Sprichst Du jetzt mit mir? Was soll mir das bringen? Ich kann, warum auch immer, kein lauffähigen Segmenter unter 14.04 64Bit erstellen.

    VDR 2.2.0, PMS mit PlexVDR, XML-API+VDR Client
    Ubuntu 16.04 64bit
    alles 'headless' auf Intel(R) Core(TM) i5-4440 CPU @ 3.10GHz, 8GB RAM, 5 x 3TB im RAID5 (12TB)
    zzgl. diverse SH4 Sat-Boxen mit NeutrinoMP

  • Sprichst Du jetzt mit mir? Was soll mir das bringen? Ich kann, warum auch immer, kein lauffähigen Segmenter unter 14.04 64Bit erstellen.


    Ja, sorry, quoten ist etwa schwierig auf dem Handy wenn man keine Fullqotes machen will. Was dir das bringen soll ist doch ganz einfach. Das PPA baut doch für dich für die Version deiner Wahl.


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hi,


    ich hatte das ja auch vor, also ein docker-file welches ein Image baut (und das Image ggfs ins Docker-Registry-Repo pushen) zu erstellen und dann darin iStreamdev und iVDR anzubinden, mit einem nginx-php-fpm davor. komme nur nicht dazu vor dem nächsten Wochenende.


    Grundsätzlich hat gda recht finde ich, aber Du kannst sicherlich auch beim Imagebuild das "Compile" machen und danach alles aufräumen - ist "eigentlich" egal. Ich habe hier epgd im Test und pulle da jedesmal beim "docker build -t ." das git-repo, patche rum usw ... und das Image ist am Ende clean und klein.


    Also eine Frage der Einstellung denke ich. Wenn Du es so ans Laufen bekommst - prima ;)


    Poste Deine Dockerfile falls Du magst, dann spar ich mir die Arbeit am WE ;)


    Ansonsten - ich habe für mich das "Phusion base image" als Basis auserkoren, da kann ich einen ssh server scharf schalten für Debugging/Testzwecke usw ... Evtl. willst Du das mal antesten für Dein build. Ausserdem, und das ist das wichtigere für meine Zwecke, hat es ein funktionierendes "Init"-like System, also kann ich orchestriert Daemons starten im Container. Und die werden auch mit einem echten signal gestoppt/pausiert, und keine Zombies wie bei den meisten anderen Baseimages. Gibt's auch in 14.04 ubuntu.


    Das fertige Image pushen geht dann übrigens echt simpel.


    a) Direkt das Image mit docker push hinbeamen, oder
    b) Einen Account anlegen, und die 2. Option auswählen, damit kannst Du es an ein Git Repository (auf github geht es, was anderes habe ich noch nicht getestet) verlinken und Docker.com macht einen Build für Dich. Nach jedem update/commit auch neu.


    VG,
    Alex

  • Hi Jondalar,
    wie hast Du das mit dem Ubuntu 12.04 mit VDR und dem Zugriff auf die DVB-Karten genau hinbekommen ?
    Bei mir findet VDR immer die DVB (-C) Karten nicht, auf dem "Host"-System (Ubuntu 14.04) klappt es aber ohne Probleme.


    Finde das ganze Konzept mit Docker extrem interessant und würde gerne mehr damit experimentieren.


    Grüße,
    Zorin

    Mein Produktiv-VDR:
    Gigabyte EP43-DS4, als Streamdev-Client,
    Server: Core i5 mit 8GB und 2*DVB-C Budget und 2x Digital Devices C/T via yaVDR als Xen-Guest mit PCI(e) passthrough
    Test-Client: Acer Revo R3600

    Einmal editiert, zuletzt von Zorin ()

  • Bei mir findet VDR immer die DVB (-C) Karten nicht, auf dem "Host"-System (Ubuntu 14.04) klappt es aber ohne Probleme.


    Hi,
    Probier mal rum mit den Parametern:


    --privileged
    --device=/dev/dvb/was-auch-immer-dahin-muss




    Ich habe bei meinen Tests mit privilged gearbeitet, und das ging. Blendet halt den gesamten Device-Tree des Hostsystems in den Container... Also Potential für Zugriffskonflikte en Masse. Was sicher besser ist, ist einzelnen Devices reinzugeben.


    VG,
    J*

  • Die Option --device finde ich sehr interessant, aber ich finde nur sehr wenig Hinweise darauf. Docker auf Ubuntu 12.04 kennt die Option nicht und in der Doku von Docker finde ich sie auch nicht. Braucht man da eine bestimmte Version?


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

    Einmal editiert, zuletzt von gda ()

  • Braucht man da eine bestimmte Version?

    Die Option ist noch keine drei Wochen alt: https://github.com/docker/docker/pull/6961

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Hi all,


    für andere zum weiterprobieren:
    Basis ist bei mir Ubuntu 14.04, wenn ich es nicht per apt-get install docker.io, sondern mit "

    Code
    curl -s https://get.docker.io/ubuntu/ | sudo sh

    " einfüge (laut http://docs.docker.com/install…tu-trusty-1404-lts-64-bit), klappt es auch mir dem --priviledged.
    Ist zwar eleganter mit --device, aber das hat bei mir so nicht funktioniert, ist halt ggf. noch nicht in dem lxc-build enthalten.
    Jetzt heißt es erstmal probieren und schön machen dann später...


    Bin ganz angetan von Docker, in der aktuellen C't ist auch ein Artikel enthalten..


    Grüße,
    Zorin

    Mein Produktiv-VDR:
    Gigabyte EP43-DS4, als Streamdev-Client,
    Server: Core i5 mit 8GB und 2*DVB-C Budget und 2x Digital Devices C/T via yaVDR als Xen-Guest mit PCI(e) passthrough
    Test-Client: Acer Revo R3600

  • Und weiter geht die wilde Fahrt. Die Frage ist nur, wie ich VDR im Container möglichst automatisch starten kann.
    Init-System scheint ja bei Docker prinzipbedingt nicht ohne Tweaks zu funktionieren.


    @Yondalar: Wie startest Du den VDR ? Automatisch beim Container/Image-Start ?


    Grüße,
    Zorin

    Mein Produktiv-VDR:
    Gigabyte EP43-DS4, als Streamdev-Client,
    Server: Core i5 mit 8GB und 2*DVB-C Budget und 2x Digital Devices C/T via yaVDR als Xen-Guest mit PCI(e) passthrough
    Test-Client: Acer Revo R3600

  • Hi Zorin,


    ich nehme das "Fusion Base Image", das hat ein abgestecktes init-System --> siehe mein Plex Image, da kannst Du es abkupfern.


    Den Container kannst Du dann von aussen über das Initsystem oder Upstart hochfeuern.


    Ansonsten - bau Dir ein Script und das führst Du mit CMD meinscript.sh halt aus, das ist ja das einzige Kommando, dass Du ins Dockerfile packen kannst.


    Cheers
    J*

  • Moin,


    ich habe gestern wieder mit einem yavdr-headless image weitergemacht und auch einen Versuch von einem anderem User auf github gefunden. Ein paar Fragen an gda und co habe ich:


    * kann ich mittels der yavdr scripte irgendwie per se headless initialisieren?
    * Also ohne X, usw, evtl per Flag, welches durch das Post-install/Post-Upgrade ausgewertet wird?
    * Gibt es eine Übersicht, welche Ports alle nach aussen gehen bei einer Standardinstallation?


    Mir fällt dazu ein:


    SSH 22
    HTTP 80/443
    STreamdev 3000


    Was ist denn mit


    SVDRP 6419 oder ?
    NFS ?
    Avahi/Zeroconf ?
    MySQL (3316) ?


    Wozu: Aktuell soll ein Container bei mir auf eine Digital Ocean Instanz laufen und via VPN einige IPTV Streams zur Verfügung stellen - also noch nichts mit Devices bisher.


    Ihr müsst mir keine fertigen Antworten geben, Hinweise auf Threads oder welche Richtung ich suchen soll reichen mir schon :)


    LG
    Alex

  • Gibt es eine Übersicht, welche Ports alle nach aussen gehen bei einer Standardinstallation?


    Nicht direkt. Aber mir fallen da noch live, restfulapi und samba ein. MySQL ist bei yaVDR nicht standardmäßig installiert.
    Ansonsten einfach schnell eine VM aufgesetzt und yaVDR installiert und dann mit netstat nachsehen... :)


    Lars.

  • * kann ich mittels der yavdr scripte irgendwie per se headless initialisieren?


    Ich weiß nicht auf welche Skripte du abzielst? So etwas wie Install-Skripte gibt es bei yaVDR nicht. Wir sagen nur dem Ubuntu-Installer welche Basis-Pakete er installieren soll.
    Eines davon ist yavdr-essentiell. Das ist ein Meta-Paket, in dem nur die Abhängigkeiten zu den benötigten Paketen stehen. Install-Skripte sind nicht gut, weil die ständig angepasst werden müssen, wenn sich in den Paketen was ändert. Install-Skripte sind nicht nötig, weil die Pakete ja schon selbst wissen wie sie installiert werden müssen.
    Das ist so allerdings für deine Zwecke nicht geeignet, weil da eben auch Xorg, ... enthalten ist, aber du könntest daraus ein yavdr-headless-essential machen indem du alle unnötigen Pakete daraus entfernst. Das Paket könnte ich dann bei uns hosten und du könntest es dann in deinem Dockerfile referenzieren.
    Sollte sich dann die Abhängigkeiten ändern, könnte das Dockerfile gleich bleiben.

    * Gibt es eine Übersicht, welche Ports alle nach aussen gehen bei einer Standardinstallation?


    Nein, da gab es bis jetzt keine Notwendigkeit.


    Wozu: Aktuell soll ein Container bei mir auf eine Digital Ocean Instanz laufen und via VPN einige IPTV Streams zur Verfügung stellen - also noch nichts mit Devices bisher.


    Schade


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

  • Hi Mini, Gerald,


    danke für die schnellen Antworten :)


    Das yavdr-essential-paket, ist das mit equivs erstellt? Dann lese ich mich da mal ein. Ich würde das glatt so machen wollen, also alles raus was man nicht braucht und dann probieren wir mal weiter. Sobald es auf dem VPS läuft probiere ich daheim mit den Devices weiter, versprochen.


    VG,
    Alex

  • "Prinzipiell" (nicht geeignet für Anfänger) lässt sich yaVDR auf einem nackten Ubuntu so installieren:


    /etc/apt/apt.conf editieren und da hinzufügen:

    Code
    APT::Install-Recommends "0";
    APT::Install-Suggests "0";


    und dann

    Code
    sudo su -
    add-apt-repository -s ppa:yavdr/main
    add-apt-repository -s ppa:yavdr/stable-vdr
    add-apt-repository -s ppa:yavdr/stable-yavdr
    add-apt-repository -s ppa:yavdr/stable-xbmc
    apt-get update
    apt-get install yavdr-essential
    yavdr-post-install


    Wenn du statt yavdr-essential ein passendes headless-Paket hast wie Gerald es vorgeschlagen hat, dann kannst du bei den events im Verzeichnis "post-install" (siehe yavdr-utils) eigene Scripte ablegen, die dann automatisch nur bei der Installation abgearbeitet werden (wenn ich das alles richtig verstanden habe, bin erst später zu yaVDR hinzugestoßen, da stand das alles schon).


    Hm, ein headless-essentials-Paket klingt interessant.


    Einfach https://github.com/yavdr/yavdr-essential klonen und die Datei yavdr-essential entsprechend anpassen.
    Und wenn du das Paket umbenennen möchtest, dann entsprechend das debian-Verzeichnis anpassen.


    Lars.

    vdr2: yaVDR 0.5/softhddevice @ G540, Intel DH67BLB3, Asus GT610/2GB, DDBridge + 2x DuoFlex C/T
    hdvdr: yaVDR unstable/softhddevice @ E8400, Asus P5Q SE Plus, 1x L4M-TwinCI + Flex C/T, 1x Sundtek MediaTV Pro, GT520
    Plugins: | avahi4vdr | dbus2vdr | dynamite | epg2timer | noepg | pvrinput | sundtek |

    Einmal editiert, zuletzt von mini73 () aus folgendem Grund: -s zu add-apt-repository hinzugefügt

  • Das yavdr-essential-paket, ist das mit equivs erstellt? Dann lese ich mich da mal ein. Ich würde das glatt so machen wollen, also alles raus was man nicht braucht und dann probieren wir mal weiter. Sobald es auf dem VPS läuft probiere ich daheim mit den Devices weiter, versprochen.

    Im Prinzip genügt es diese Datei anzupassen und das Paket mit dpkg-buildpackage neu zu bauen. Wenn man das WFE dann noch von dadurch unsinnig gewordenen Optionen (Frontends, Lirc usw.) befreien möchte, muss man da auch noch nacharbeiten.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Super Infos! Danke!!! (fork ist schon gemacht, ich bastle da heute Abend dran weiter und morgen)


    Noch ne Frage - wie kann ich denn dann das manuelle "yavdr-headless-essential" mit allen Abhängigkeiten installieren? Mit dpkg -i XYZ.deb meckert er dann, das ihm was fehlt.


    *nicht so wichtig* weil ich kann den Krams ja auch so per Hand jetzt einfach installieren.


    VG,
    Alex

  • PPA bei Launchpad erstellen und dort hochladen... :)
    Danach dann mit apt-get installieren. Woher soll dpkg denn sonst die abhängigen Pakete ziehen?


    Oder "apt-get -f install", das müsste auch gehen.
    http://askubuntu.com/questions…stall-dependencies-for-me


    gdebi soll das auch können.


    Lars.


  • Das yavdr-essential-paket, ist das mit equivs erstellt?


    Was ist equivs? Übrigens, alle Projekte in unserem github erzeugen automatisch Pakete bei Launchpad nach einem commit.


    Vielleicht lässt sich Lars ja dazu überreden, dass auch für dieses Paket einzurichten und dir Zugriff darauf zu ermöglichen ;)


    Gerald


    HP Proliant MicroServer Gen8, Xeon E3-1230, 12 GB RAM, 3xWD red 2TB im RAID 5, 2xSundtek MediaTV Home DVB-C/T, L4M TWIN-C/T, Ubuntu Server 14.04.1, Plex Media Server
    Samsung UE55H6470

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!