Offizielles FHEM Docker Basis Image für verschiedene Plattformen

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

Vorheriges Thema - Nächstes Thema

nanocosmos

Hallo zusammen,

ich nutze fhem docker aktuell auf meinem Selbstbau NAS mit Openmediavault.
Alle docker Container besitzen in einem Hauptordner jeweils eigene Unterordner.
Ich kann auf alle Ordner zugreifen, außer auf fhem. Sobald ich den core Ordner öffnen möchte, kommt die Meldung, dass ich keine Berechtigung habe.
Ich habe den Hauptordner bereits mehrfach in OMV für Windows Netzwerkfreigabe verfügbar gemacht. Das Problem bleibt...
Da ich ja auf alle anderen Unterordner zugreifen kann, bin ich mir nicht sicher, dass es ein Berechtigungsproblem ist, zumal ich in OMV nur den Hauptordner verfügbar mache und somit eigentlich alle Unterordner die gleichen Berechtigungen besitzen müssten.

Mir ist jedoch aufgefallen, dass der core Ordner von fhem schreibgeschützt ist.

Vielleicht hat jemand ne Idee.. [emoji1]

Besten Dank und viele Grüße!

volschin

Ist ein Berechtigungsproblem. Leider agiert der FHEM-Container mit automatischen Rechteänderungen auf dem Hostsystem. Kannst Du nur durch ein eigenes Image unterbinden oder indem Du eine spezifische seccomp-Datei zuweist, die chown verbietet.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

nanocosmos

Danke!
Das ist aber neu, oder?
Ich hatte mein Fhem Docker vor ca. 3 Monaten auf den damals aktuellen Stand gebracht. Davor gab es die Probleme nicht... [emoji1]

Papaloewe

Hallo Lerodo,

ich bin seit ein paar Tagen auf "fhem im Container" produktiv umgestiegen und dabei sehr dankbar für dieses Image.

Jetzt fällt mir auf, dass mein täglicher Sicherungsjob mittels rsync nicht mehr läuft.
Frage: Ist rsync im Image enthalten? Falls nein, könnte man es bitte noch integrieren?

Vielen Dank & bleibt alle gesund.

Thomas

Papaloewe

Hat sich erledigt.

Die Möglichkeit, eigene Pakete zu integrieren ist ja bereits vorhanden.
Super!

maci

Zitat von: nanocosmos am 20 März 2020, 14:50:13
...
Ich kann auf alle Ordner zugreifen, außer auf fhem. Sobald ich den core Ordner öffnen möchte, kommt die Meldung, dass ich keine Berechtigung habe.
.....

Ich habe in meiner docker.compose.yaml die FHEM.UID und die FHEM.GID gesetzt mit dem Rechten meines Users, der auch Docker bedienen darf.
Somit kann ich auf alle fhem Dateien zugreifen.
Fhem auf Dell Thinclient, Fhem auf Raspebrry Pi4,
UniPi Vers. 1.1 mit Raspberry Pi3, 1wire USB Adapter mit OWX
Netatmo Wetterstation + Regenmesser + Netatmo Thermostat
Homematic mit HMLan

nanocosmos

Hej zusammen,

ich nutze die aktuelle Zeit im Home Office um meine Docker Umstellung voran zu treiben.
Aktuell sitze ich an MySQL als Docker Container.

Ich habe es schon hinbekommen, dass fhem sich mit mysql verbindet.
Leider schaffe ich es nicht die notwendigen Tabellen (current, history) in mysql anzulegen.
Von außen komme ich gar nicht auf die mysql Instanz.

Daher dachte ich, dass ich die init.SQL in das mysql Verzeichnis packe:

CREATE TABLE history (
    TIMESTAMP TIMESTAMP,
    DEVICE varchar(64),
    TYPE varchar(64),
    EVENT varchar(512),
    READING varchar(64),
    VALUE varchar(255),
    UNIT varchar(32),
    KEY `Search_Idx` (`DEVICE`,`READING`,`TIMESTAMP`,`VALUE`),
    KEY `Device_Idx` (`DEVICE`,`READING`),
    KEY `Report_Idx` (`TIMESTAMP`,`READING`) USING BTREE
);

CREATE TABLE current (
    TIMESTAMP TIMESTAMP,
    DEVICE varchar(64),
    TYPE varchar(64),
    EVENT varchar(512),
    READING varchar(64),
    VALUE varchar(255),
    UNIT varchar(32)
);


Mache ich nun ein docker-compose up -d möchte mysql nicht starten. In einem kompletten leerer Ordner ist das kein Problem.
Anbei Auszüge meiner yml Datei:

mysql:
        restart: always
        expose:
            - "3306"
            - "33060"
        ports:
            - "3306:3306"
            - "33060:33060"
        image: mysql/mysql-server:5.7
        volumes:
            - ./mysql/init.sql:/docker-entrypoint-initdb.d/fhem-init.sql
            - ./mysql/data:/var/lib/mysql
        environment:
            - MYSQL_DATABASE=fhem
            - MYSQL_USER=fhemuser
            - MYSQL_PASSWORD=XXXXXXXX
            - MYSQL_RANDOM_ROOT_PASSWORD=true
            - MYSQL_ONETIME_PASSWORD=false
        networks:
            - fhem-network


Leider kenne ich mich mit Docker noch nicht gut genug aus.
Ich habe wohl sehr sicher einen Fehler in meiner yml Datei...

Vielleicht sieht jemand diesen Fehler. Besten Dank für die Untersützung!

Wernieman

Also ..
- "33060" was ist das für ein Port??
- Du solltest "von Außen", d.h. vom docker-Server auf mysql kommen, in dem Du den Port angibst. Du kannst auch auf mysql Zugreifen, in dem Du über <IP-des Containers> Port zugreifst.
- Warum machst Du expose UND port?


Leider verstehe ich Deine Meldung nicht:
ZitatIn einem kompletten leerer Ordner ist das kein Problem.
- 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

spectdan

Du kannst dich doch einfach in deinen Container einloggen und die Befehle eingeben. So habe ich es gemacht.

docker exec -it <ContainerName> bash

Dann noch in die Datenbank einloggen wie sonst auch.

mysql -p -u <fhemuser>

Der Rest sollte ja bekannt sein.

Gesendet von meinem SM-G960F mit Tapatalk


balli1187

Portainer ist hier auch sehr hilfreich, da man ja nur einmal daran muss und danach"eigentlich" nicht mehr direkt an den MySQL-Container muss.

Geht natürlich auch alles über "docker exec" aber damit kommt ja nicht jeder gleich gut klar.


Gesendet von iPhone mit Tapatalk
FHEM auf QNAP im docker, nanoCUL per ser2net an VU+, 2x Echo Dot, 3x HM-ES-PMSw1-Pl, 3x HM-LC-Bl1PBU-FM, 6x Sonoff Basic, div. "Shelly Eigenbauten" von Papa Romeo, ESPRGBWW-Controller, ...
Projekte: Smart Mirror in Spiegelschrank auf RPi Zero

nanocosmos

Zitat von: spectdan am 23 März 2020, 12:52:18
Du kannst dich doch einfach in deinen Container einloggen und die Befehle eingeben. So habe ich es gemacht.

docker exec -it <ContainerName> bash

Dann noch in die Datenbank einloggen wie sonst auch.

mysql -p -u <fhemuser>

Der Rest sollte ja bekannt sein.

Gesendet von meinem SM-G960F mit Tapatalk
Besten Dank, die Möglichkeit war mir noch gar nicht bewusst. Vielen Dank!

Andy89

Zitat von: maci am 23 März 2020, 12:18:59
Ich habe in meiner docker.compose.yaml die FHEM.UID und die FHEM.GID gesetzt mit dem Rechten meines Users, der auch Docker bedienen darf.
Somit kann ich auf alle fhem Dateien zugreifen.
danke für diesen hilfreichen Tipp. Funktioniert super und ich muss nicht mehr das root Password eintippen, um Kleinigkeiten zu ändern.
Danke!

Bleibt Gesund,
Andy
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

nanocosmos

Zitat von: maci am 23 März 2020, 12:18:59
Ich habe in meiner docker.compose.yaml die FHEM.UID und die FHEM.GID gesetzt mit dem Rechten meines Users, der auch Docker bedienen darf.
Somit kann ich auf alle fhem Dateien zugreifen.

Könntest Du mir das bitte an einem Beispiel zeigen?  :)

Andy89

Zitat von: nanocosmos am 23 März 2020, 18:16:05
Könntest Du mir das bitte an einem Beispiel zeigen?  :)

in der docker-compose.yml habe ich diese Variablen hinzugefügt:
environment:
      FHEM_UID: 6061
      FHEM_GID: 6061


Die beiden Zahlen müssen auf den gewünschten User angepasst werden.

Die UID von deinem User bekommst du so raus (pi ist der Username):
id -u pi
und so die GID:
id -g pi

Danach natürlich den Container neustarten und du solltest wieder Zugriff auf dem fhem Ordner haben.
FHEM 6.0 auf rPi4 docker (mit Alexa & Siri); dbLog, FTUI, Sonos, XiaomiMapCreator auf rPi4 docker;
raspimatic auf rPi3+ > diverse Aktoren und Sensoren;
LGW > (PCA301),EC3000,LaCrosse; MQTT2 > WLAN-Steckdosen,Xiaomi Map;
Harmony Hub;Sonos;Onkyo AVR;RGB WLAN Controller;Netatmo;Withings;Unifi;AMAD

eddy242

Hallo zusammen,

fhem läuft seit Monaten im Docker stabil. Ins Image wird ein Host-Folder gemounted, der von Sonos Speak verwendet wird (straightforward nach Anleitung). Diese Host Folder wird in einem anderen Container ebenfalls gemounted auf dem Samba läuft und die Sprachausgabe MP3 liegt.

Die Berechtigungen sind seit Monaten gleich und alles lief stabil. Seit ein paar Tagen funktionieren die Sprachausgaben nicht mehr und ich habe mich ans debuggen gemacht. Was mit auffällt ist dass seit neuestem die Files nicht mehr im Container mit rw-rw-r-- angelegt werden sondern mit rw-rw----, d.h. für everyone gibts keine Berechtigungen. Das ist im File des Hostfolders genau gleich, d.h. auf dem Sonosshare kann man das File als guest nicht mehr abholen.

Ich habe bereits im Container die umask überprüft (022), sollte ok sein. Habe auch mit umask 002 rumgespielt, ohne Erfolg.

Gab es bei der umask für File-Creations innerhalb des Containers in letzter Zeit Änderungen? Hat jemand eine Idee zu einem Workaround?