fhem-docker Image 4.0.0 (Tester gesucht)

Begonnen von Sidey, 02 März 2024, 11:35:13

Vorheriges Thema - Nächstes Thema

kadettilac89

Zitat von: Sidey am 23 April 2024, 21:31:22Ich verstehe nur nicht, welche Notwendigkeiten gibt es denn, was in dem Container nach zu installieren?
Wenn das Image so nicht passt, wieso baut ihr dann ich einfach einen weiteren Layer bei euch lokal ein? So funktioniert es doch bei allen anderen Containern auch.


Ich nutze die Docker Minimal und will nur zusätzliche Pakete drin habe die ich brauche. Vermutlich würde das "große" Image schon alles abdecken, aber ich bin "früher" schon ein paarmal durch npm, und andere Abhängigkeiten in Probleme gelaufen. Seit Fhem-minimal läuft es stabil. Wenn ich ein eigenes Image baue nehme ich mir die automatischen Updates durch watchtower wenn ein neues Image hochgeladen wird.

carlos

@Sidey
Na da habe ich ja jetzt eine größere Diskussion losgetreten.
Zur Klärung:

Die beiden module 95_Shares.pm und 95_ShareMaster.pm liegen im SVN (nicht contrib!) .
95_Shares.pm benutzt:
..
use Finance::Quote;
..

Dieses package  kann man entweder über Debian apt installieren(nicht aktuell) oder über cpan.
Im Moment gibt es da leider ständig Anderungen, so dass man immer die aktuelle Version braucht.

ZitatDas Image hat den Anspruch, dass alle SVN Module (außer die in contrib) lauffähig sind. Dazu werden alle Module gescannt und deren notwendigen Packages sind installiert.
Mir fallen nur zwei Gründe ein, wieso es mal nicht klappt
a) Das Image ist schon älter und unterstützt noch die die neue Packageabhängigkeit. (Aktuell eher unwahrscheinlich)
b) In dem Scan ist ein Bug und er hat ein notwendiges Package übersehen.

Geht aktuell eines der im SVN befindlichen Module nicht?
Keine Ahnung ob hier dann b) zutrifft.

Wie schon gesagt, ich teste hier nur und versuche entsprechend Beiträge zu leisten.
Für mich persöhnlich es nicht unbedingt wichtig, da mein fhem nicht als docker image läuft.

Aber meiner Meinung nach sollte so ein image so vollständig wie moglich sein.

Gruß

Hubert
FHEM svn auf Intel NUC mit proxmox,1 UDOO, 3 Raspberry Pi, signalduino, nanoCUL, div. Homematic Komponenten, toom Baumarkt Funksteckdosen, einige sonoffs, hue, shelly

Sidey

Zitat von: carlos am 24 April 2024, 10:33:42@Sidey
Na da habe ich ja jetzt eine größere Diskussion losgetreten.
Zur Klärung:

Die beiden module 95_Shares.pm und 95_ShareMaster.pm liegen im SVN (nicht contrib!) .
95_Shares.pm benutzt:
..
use Finance::Quote;
..

Dieses package  kann man entweder über Debian apt installieren(nicht aktuell) oder über cpan.

Dieses Package ist im Build vorhanden.

Bevor sich das festsetzt.
Über APT installierte Perl Packages werden nicht mehr verwendet / geladen.

Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

kadettilac89

Zitat von: carlos am 24 April 2024, 10:33:42Aber meiner Meinung nach sollte so ein image so vollständig wie moglich sein.

ZitatIch nutze die Docker Minimal und will nur zusätzliche Pakete drin habe die ich brauche.

Das ist der Konflikt der die Env-Parameter hervor brachte. Ist halt die Frage wohin man will. Der Split in minimal und normal ist schon ein guter Anfang dazu. Jedem Recht machen wird nie funktionieren.

Wernieman

ZitatAber meiner Meinung nach sollte so ein Image so vollständig wie möglich sein.
Bei einem Minimalsystem meiner Meinung gerade nicht. Sonst bekommen wir in die aktuelle Situation wieder, das es nicht mehr wartbar ist.

Eher kann man das Minimalsystem aufbohren mit Ergänzungen und als eigenständige Container anbieten. So machen es z.B. andere Projekte.
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Otto123

ich habe ja bisher nur etwas quer dazwischen geredet, aber jetzt wollte ich wirklich mal ein Image testen - aber irgendwie fehlt mir eine Info?
Ich meine: alles was auf der Seite https://github.com/fhem/fhem-docker an Anleitung mit "4" steht meldet
ZitatError response from daemon: manifest unknown
???
Auch was hier im Thread im ersten Beitrag steht funktioniert nicht.

OK nach etwas Frust und Suche: man muss hierhin gehen https://github.com/orgs/fhem/packages/container/package/fhem-docker
docker pull ghcr.io/fhem/fhem-docker:dev-threaded-bullseye
Auch da ist der Rest vom Text nur zur Verwirrung?  ;D

Ich wollte nicht meckern ich wollte es nur sagen weil es mir auffiel ;)
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

Sidey

Zitat von: Otto123 am 24 April 2024, 21:31:53Auch was hier im Thread im ersten Beitrag steht funktioniert nicht.
Das wundert mich, kann mich nicht erinnern das gelöscht zu haben... Sollte ich aber vermutlich mal machen.

Aber ja, die Readme geht davon aus, dass es die V4 gibt, was ja nicht stimmt weil noch Beta.
Das ist nicht ideal, aber besser als wenn unter dem Tag V4 eine Beta kommt und jemand das nicht weiss.


Grüße Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

Sidey

So, allen Testern zwischendurch auch vielen Dank an das fleißige Testen.

Ich habe gestern die Beta10 veröffentlicht, darin sind die zuletzt gemeldeten Bugs behoben:

ghcr.io/fhem/fhem-docker:4.0.0-beta10-bullseye

Da mir zum jetzigen Zeitpunkt keine Fehler bekannt sind werde ich mich um das Thema Imagegröße kümmern.

Viele Grüße
Sidey
Signalduino, Homematic, Raspberry Pi, Mysensors, MQTT, Alexa, Docker, AlexaFhem

Maintainer von: SIGNALduino, fhem-docker, alexa-fhem-docker, fhempy-docker

erwin

Ich hätte da noch eine "Feature Vorschlag":

könnte man nicht ein start-beforexxx.sh aus dem sowieso gemounteten /opt/fhem/ directory im standard dockerfile aufrufen?
- damit würde sich der user eine eigene Dockerfile ersparen und hätte dennoch die Flexibilität, die bisher z.B. mittels ENV parametern bzw. auch notfalls auch apt od. cpan od. ... Möglichkeiten vor dem FHEM start...
der user startet dann "sein" image nur mittels run cmd. - Falls was nicht funktioniert, einfach den start-beforexxx.sh am docker-host löschen und er hat das standard image ohne mods...
eine post-xxx.sh kann man auch jetzt schon mit der V3 aus dem laufenden FHEM aufrufen.
l.g. erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

kadettilac89

Zitat von: erwin am 29 April 2024, 09:10:49Ich hätte da noch eine "Feature Vorschlag":

könnte man nicht ein start-beforexxx.sh aus dem sowieso gemounteten /opt/fhem/ directory im standard dockerfile aufrufen?
- damit würde sich der user eine eigene Dockerfile ersparen und hätte dennoch die Flexibilität, die bisher z.B. mittels ENV parametern bzw. auch notfalls auch apt od. cpan od. ... Möglichkeiten vor dem FHEM start...
der user startet dann "sein" image nur mittels run cmd. - Falls was nicht funktioniert, einfach den start-beforexxx.sh am docker-host löschen und er hat das standard image ohne mods...
eine post-xxx.sh kann man auch jetzt schon mit der V3 aus dem laufenden FHEM aufrufen.
l.g. erwin

Gibts doch schon, oder was fehlt?


Zitat von: kadettilac89 am 23 April 2024, 12:32:56
Zitat von: carlos am 22 April 2024, 13:21:50Wenn ich jetzt per cpan z.b.: Finance::Quote installieren möchte, wie kann ich das machen?
Gibt es da eine generelle Vorgehensweise, wenn ich Zusatzliche Software installieren möchte?

Mal die Diskussion was man darf und was man lassen sollte ausgeblendet.

Es gibt die Möglichkeit per Startscript irgend welche Dinge zu unterschiedlichen Zeitpunkten auszuführen. Hier installiere ich mir meine Pakete nach seit es die Env-Möglichkeit nihct mehr gibt.

Initscripts

Make any other changes during container start

In case you need to perform further changes to the container before it is ready for your FHEM instance to operate, there are a couple of entry points for your own scripts that will be run automatically if they are found at the right place. In order to achieve this, you need to mount the script file itself or a complete folder that contains that script to the respective destination inside your container. See Docker documentation about Use volumes and Bind mounts to learn how to achieve this in general.

.....

kadettilac89

Hi Sidey,

Es gibt 2 Arten von Images. Das "normale" und das "Threaded".

Bietet das threaded Perl irgend welche Vorteile? Was Threads sind weiß ich, mir gehts um die Motivation ein solches Image zu bauen.

Ich habe mit Beta9 das threaded mal genutzt und festgestellt, dass damit der Healthcheck auf unhealthy geht obwohl Fhem problemlos arbeitet und von außen erreichbar ist. Ich habe heute morgen den Container mit Beta10 am laufen und Health ist wieder OK. Ich habe aber nicht weiter analysiert. Hatte nur durch den unhealthy-Status dauern Restarts.

Ich habe das Minimal-Image im Einsatz ....

erwin

@kadettilac89
ZitatGibts doch schon, oder was fehlt?
Ja gibts, aber die Idee war dass man ohne eigene compose und dockerfile auskommt.... - also möglichst nah am default...
l.g.erwin
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

kadettilac89

Zitat von: erwin am 29 April 2024, 11:53:38@kadettilac89
ZitatGibts doch schon, oder was fehlt?
Ja gibts, aber die Idee war dass man ohne eigene compose und dockerfile auskommt.... - also möglichst nah am default...
l.g.erwin

Hast du dir meine Antwort durchgelesen und verstanden? Das muss du ja nicht

erwin

@kadettilac89

deine Antwort hab ich gelesen, aber evtl. kapier ich einfach nicht, wie man das ohne eigenen compose od. dockerfile lösen kann.
Vielleicht zeigst du mir den Weg.
FHEM aktuell auf RaspberryPI Mdl 1-4
Maintainer: 00_KNXIO.pm 10_KNX.pm
User: CUNO2 (868 SLOWRF) - HMS100xx, FS20, FHT, 1-Wire  - 2401(iButton), 18x20, 2406, 2413 (AVR), 2450,..,MQTT2, KNX, SONOFF, mySENSORS,....
Hardware:  Busware ROT, Weinzierl IP731, 1-Wire GW,...

kadettilac89

#164
Zitat von: erwin am 29 April 2024, 13:17:15@kadettilac89

deine Antwort hab ich gelesen, aber evtl. kapier ich einfach nicht, wie man das ohne eigenen compose od. dockerfile lösen kann.
Vielleicht zeigst du mir den Weg.

Initscripts

Wie auf der Seite vom Docker Container beschrieben ...

Je nachdem was du wann installieren willst suche dir einen Absprungspunkt aus ...

/pre-init.sh, /docker/pre-init.sh
/post-init.sh, /docker/post-init.sh
/pre-start.sh, /docker/pre-start.sh
/post-start.sh, /docker/post-start.sh

Ich binde den Ordner /docker und dort lege ich meine Scripte ab

        volumes:
            - /docker/docker_files/fhemscripts:/docker     

Vermutlich ist das post-init.sh script der richtige Absprungspunkt für dich. Du erzeugts also ein kleines Script in dem apt-update && apt-install <dein paket> ... ausgeführt wird. Ohne dass du ein Dockerfile oder Änderung am Defaultimage machen musst. Dein Script muss nur so heißen wie auf Github beschrieben sonst wird es nicht ausgeführt.


Edit: du kannst dir im Prizip die alte Logik des Dockerfile aus 3.0 als Vorlage nehmen. Mein Script sieht aktuell so aus um ein paar Dinge zu installieren.

#!/bin/bash
#
#Since version 4
#To extand the image wirh a custom package for example, you have to use standard docker tools.

        #nodejs sources
        mkdir -p /tmp/keyrings/
        curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /tmp/keyrings/nodesource.gpg
        NODE_MAJOR=20
        echo "deb [signed-by=/tmp/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" > /etc/apt/sources.list.d/nodesource.list

        #Upade before all packages
        LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get update


        #APT_PKGS: "nano libmodule-pluggable-perl libfinance-quote-perl iproute2"
        LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends \
                nano \
                libmodule-pluggable-perl \
                libfinance-quote-perl \
                iproute2


        #NPM_PKGS: "gassistant-fhem"

        LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install nodejs -y
        LC_ALL=C DEBIAN_FRONTEND=noninteractive apt-get install -qqy --no-install-recommends npm

        npm install -g --unsafe-perm --production gassistant-fhem


        #CPAN_PKGS: "Data::Peek Net::FTPSSL Protocol::WebSocket::Frame"
        cpanm --notest \
                Data::Peek \
                Net::FTPSSL \
                Protocol::WebSocket::Frame

        #Cleanup apt
        LC_ALL=C apt-get autoremove -qqy && LC_ALL=C apt-get clean
        rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* ~/.[^.] ~/.??* ~/* /etc/apt/sources.list.d/nodesource.list