Offizielles FHEM Docker Basis Image für verschiedene Plattformen

Begonnen von Loredo, 28 Juli 2018, 21:24:57

Vorheriges Thema - Nächstes Thema

Loredo

Ich habe beim DEV Image einmal versucht die Image Layer optional über die folgenden Build Environment Variablen steuerbar zu machen:

IMAGE_LAYER_SYS_EXT="1"
IMAGE_LAYER_PERL_EXT="1"
IMAGE_LAYER_DEV="1"
IMAGE_LAYER_PERL_CPAN="1"
IMAGE_LAYER_PYTHON="1"
IMAGE_LAYER_NODEJS="1"

Setzt man eine dieser Variablen auf 0, dann sollte der entsprechende Layer nicht mit eingebaut werden.
Was jeweils im Layer enthalten ist oder nicht, kann man aus dem Dockerfile recht einfach aufgrund der Kommentare darin herauslesen.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

ulli

Super, probier ich gleich aus.
Kurzerhand ist mir aufgefallen das du mehrmals ein "apt-get update " drin hast. Eins würde vermutlich reichen :)

Loredo

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

beddo

Der integrierte node.js im aktuellen Image warnt er wäre veraltet, lässt sich aber über die fhem Oberfläche nicht aktualisieren. Generelles Problem, oder nur in meinen Setting?

Loredo

#199
Nicht node.js ist veraltet, sondern die Pakete der Node.js Inc liefern nicht die bleeding Edge Version des Paketmanagers NPM mit (siehe www.nodejs.org). Der NPM Paketmanager kann sich problemlos selbst aktualisieren und das funktioniert auch über das FHEM Modul npmjs.pm

Ansonsten: siehe hier
[42_npmjs.pm] Update von Node.js Paketen per NPM aus FHEM
https://r.tapatalk.com/shareLink?share_fid=75100&share_tid=96525&share_pid=906144&url=https%3A%2F%2Fforum%2Efhem%2Ede%2Findex%2Ephp%3Ftopic%3D96525%2Emsg906144%23msg906144&share_type=t
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

Loredo

#200
Ich habe gerade eine neue Produktivversion v1.8.3 an das Build System geschickt:


- fix sudo Rechte
- Docker Container Capabilities werden als Readings in DockerImageInfo angezeigt
- verbessertes Startup Script


Als Hinweis: Node.js und NPM sind immer auf dem Stand, als das Image gebaut wurde. Es gibt keinen externen Trigger, der das Image neu baut, wenn es eine neue Version von Node.js oder eines NPM Paketes gibt. Dafür gibt es die Möglichkeit das über das npmjs.pm Modul über FHEM zu aktualisieren. Das ist also das gleiche wie mit FHEM auch: Wer mit einem frischen FHEM über den Container anfängt, der bekommt FHEM auf dem Stand des Tages, als das Image gebaut wurde und kann dann über den FHEM Update Befehl auf den neusten Stand aktualisieren.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

FunkOdyssey

#201
Mit der neuesten Version wird das Log 2018-02-17.log nicht mehr angezeigt.
Die (bei mir) Tageslogs werden seit dem Rebuild nicht mehr fortgeschrieben.
ENV gesetzt.

Nachtrag: oh, der Pfad muss nun anders angegeben werden.
-e LOGFILE=./log/fhem-%Y-%m.log

Schlimbo

Hallo Loredo,
das FireTV Modul benötigt die ADB binary.
Wäre super wenn das noch in das Image mit aufgenommen werden könnte.

eisler

Hallo Loredo,

Auf hub.docker.com steht "Updated 4 days ago".
Wie oft werden die Images aktualisiert?

Grüße
Stephan

Loredo

Zitat von: eisler am 19 Februar 2019, 07:54:30
Auf hub.docker.com steht "Updated 4 days ago".
Wie oft werden die Images aktualisiert?


Im Grunde täglich, allerdings hatte ich vor einiger Zeit für die Produktiv-Images konfiguriert, dass nur Versiontags gebaut werden, weil die dann eben auf Github auch entsprechend grün werden. Dafür hatte ich abgeschaltet, dass bei generellen Änderungen am Master Branch auch ein Build ausgelöst wird, da diese sonst doppelt gemoppelt sind. Allerdings funktioniert dann offenbar die Cronjob Funktion von Travis nicht mehr...
Daher habe ich es jetzt wieder umgestellt und lebe leider mit dem fehlenden grünen Bubble auf Github  :'(


Zitat von: Schlimbo am 17 Februar 2019, 08:53:13
das FireTV Modul benötigt die ADB binary.


Habe ich gerade hinzugefügt.

Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

ulli

Ich bin immer noch am überlegen ob das der richtige Weg für fhem ist.
Wenn wir alle möglichen Pakete ergänzen für alle Eventualitäten die es gibt wird der Container immer schwerer handlebar.
(Auch die Grundidee ein begrenztes Minimalsystem für hoffentlich weniger Angriffsfläche zu bieten ist damit dahin.)

Wäre ein min basis fhem container eine Möglichkeit, welcher dann als From in compose files genutzt werden kann um Funktionen zu ergänzen?

(Ich versuche gerade zu vermeiden was eigenes zu machen, da ihr echt tolle Arbeit geleistet habt....)

Loredo

#206
Es wird irgendwann ein "light" Image geben, aber dafür müssen erst andere Voraussetzungen geschaffen werden, damit das sinnvoll funktioniert. Die Fortschritte in dieser Richtung sieht man beim Thema 42_npmjs.pm oder Meta.pm.
Aber auch die Github Aktivitäten spielen mit rein.

Du bist natürlich herzlich eingeladen tatkräftig zu unterstützen, meckern kann schließlich jeder  :P


Der Punkt ist: Das zu modular zu machen verkompliziert die Sache nur für alle Seiten. Wer jede Stellschraube ständig und immer selbst unter Kontrolle haben will, für den kann es nie was fertiges geben, mit dem er dann auch zufrieden sein wird. Da wird dann keine Seite mit glücklich werden. Deshalb: Bau selbst, was du maximal selbst kontrollieren willst.


Übrigens: Der Docker Container von Home Assistant ist doppelt so groß wie unserer. Nur mal um das ganze etwas einzuordnen.




Übrigens, die zweite: Was ist mit den Custom Build Options? Die sind doch genau das, was du willst? https://forum.fhem.de/index.php/topic,89745.msg905962.html#msg905962
Du kannst das Image selbst bauen und es klein halten und mit den pre-Scripts beim ersten Start selbst Kommandos ausführen, um fehlende Dinge zu ergänzen.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

patlabor

Hallo,

erstmal ein dickes Dankeschön für die tolle Arbeit. Mir ist letztes Jahr während den Weihnachtsfeiertagen meine alte Fhem installation abgeraucht, und ich habe die Gelegenheit genutzt fhem von 0 auf neu zu bauen und auf Docker umzustellen.
Jetzt habe ich gerade versucht meine Google Home Lautsprächer per googlecast zu integrieren.
Leider funktioniert das nicht so wirklich. Scheinbar ist das falsche Inline Python installiert
https://forum.fhem.de/index.php/topic,97702.0.html
Nachdem ich gestern Abend die dort angegebene Lösung versucht habe, ging es zumindes schon mal soweit das ich das device anlegen konnte, leider wurde der Lautsprecher aber nicht gefunden.
Habe dann den Hinweis gefunden das für googlecast der Container im Host mode laufen muß. Habe ich versucht, dabei wurde dann der Container neu gebaut und die Änderungen bezüglich Python wurden wieder zurück gesetzt.
Jetzt versuche ich seit heute morgen die Lösung von oben wieder umzusetzten, aber es will mir einfach nicht mehr gelingen. Ständig kommt die Meldung

Cannot load module GOOGLECAST

Und das Log spuckt folgendes aus:
Traceback (most recent call last):
  File "<string>", line 3, in <module>
ImportError: No module named pychromecast
2019.02.22 16:51:42.033 1: reload: Error:Modul 98_GOOGLECAST deactivated:
Error -- py_eval raised an exception at /usr/lib/arm-linux-gnueabihf/perl5/5.24/Inline/Python.pm line 221.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 695.

2019.02.22 16:51:42.034 0: Error -- py_eval raised an exception at /usr/lib/arm-linux-gnueabihf/perl5/5.24/Inline/Python.pm line 221.
BEGIN failed--compilation aborted at ./FHEM/98_GOOGLECAST.pm line 695.


Auch bin ich mir nicht sicher ob das ganze dann funktionieren würde. Da ich traefik als proxy benutze habe ich ein docker netzwerk namens proxy für den container, wenn ich jetzt "network_mode: "host"" benutze, bekomme ich die meldung das etweder "network" oder "network_mode" benutzt werden kann, aber nicht beide. ich habe dann einfach
network:
   - proxy
   - internal

im docker-config file angegeben. zumindest ist der container dann gestartet, aber leider bekomme ich das googelcast modul nicht mehr zum laufen, kann daher auch nicht sagen, ob der google home jetzt gefunden wird.

Loredo

Mit Bezug auf diesen Beitrag von dir habe ich Inline::Perl jetzt aus dem CPAN statt dem mitgelieferten Debian Paket installiert.
Derzeit noch im DEV Image, demnächst dann auch im PROD Image.


Die anderen Teile deines Posts besprichst du ja bereits im anderen Thread und die sind dort auch richtig/besser aufgehoben.
Hat meine Arbeit dir geholfen? ⟹ https://paypal.me/pools/c/8gDLrIWrG9

Maintainer:
FHEM-Docker Image, https://github.com/fhem, Astro(Co-Maintainer), ENIGMA2, GEOFANCY, GUEST, HP1000, Installer, LaMetric2, MSG, msgConfig, npmjs, PET, PHTV, Pushover, RESIDENTS, ROOMMATE, search, THINKINGCLEANER

link611

#209
Hiho,

habe eben versucht folgendes Modul im FHEM Docker Container zu nutzen:

https://forum.fhem.de/index.php/topic,79168.0.html


Dafür fehlt leider im Image das libxml-bare-perl.
Habe ich jetzt mal manuell im Container installiert, dann klappt es auch :)

Habe es jetzt erstmal über das pre-init script gelöst.

Wäre es möglich das mit in das Image einzubauen?