Probleme mit RPI_GPIO in Docker-Container

Begonnen von yreiser, 28 August 2021, 20:02:35

Vorheriges Thema - Nächstes Thema

Otto123

Ich meinte das mit der Sicherheit eher in Richtung Betrieb und Isolation der Services voneinander und vom Host. Alle Container priviligiert, da kann man die Services auch gleich auf dem Host installieren :D
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

yreiser

Zitat von: herrmannj am 30 August 2021, 11:30:18
ich bin bisher intuitiv (falsch;)) immer davon ausgegangen dass das nicht geht . Ich finde das total spannend. Ob man aus dem container auch auf den i2c des host kommt?

Ja - auch i2c funktioniert einwandfrei.
Man muss lediglich das device /dev/i2c-1 an den Container weitergeben.

Auch 1-Wire Devices funktionieren einwandfrei.

herrmannj


fhemjan

Zitat von: yreiser am 29 August 2021, 02:31:40
Nun funktioniert doch alles perfekt. Kein Problem, die GPIO's aus dem Container raus zu starten.
Wichtig ist, dass im host der user fhem der Gruppe gpio hinzugefügt wird (und danach ein Reboot erfolgt):

Das funktionierende Minimal-Docker-Compose-Script sieht jetzt bei mir so aus:


version: '3'

services:
    fhem:
        image: fhem/fhem:latest
        restart: always
        ports:
            - "8083:8083"
        container_name: fhem
        volumes:
            - ~/data/fhem:/opt/fhem/
            - /sys/class/gpio:/sys/class/gpio
            - /sys/devices/platform:/sys/devices/platform

        networks:
            - fhem-network
       
        environment:
            GPIO_GID: 997
            FHEM_UID: 1001 # oder id eines anderen users
            FHEM_GID: 1001 # oder id eines anderen users
            TIMEOUT: 10
            RESTART: 1
            TZ: Europe/Berlin

Ich habe einen laufenden FHEM-Container. Wenn ich nun ein recreate mit GPIO_GID: 997 mache startet der Container nicht mehr? Hier wird immer gesagt: "Wichtig ist, dass im host der user fhem der Gruppe gpio hinzugefügt wird (und danach ein Reboot erfolgt)". Könnt ihr mir sagen wie ich das mache? Wenn ich den user FHEM über die shell in die Gruppe gpio hinzufügen will sagt er, dass der User nicht existiert..?

Otto123

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

fhemjan

ok, ich verstehe es dann so, dass ich im Host den User mit UID 1001 (bzw. bei mir ist glaub ich 6002) in die Gruppe gpio zufüge. Zudem die /sys/.. volumes übergeben.
Den Punkt mit GPIO_GID: 997 verstehe ich noch nicht ganz, zumal bei mir bei der Einstellung der Container streikt, aber vielleicht reichen ja schon die anderen Änderungen. Ich teste es heute abend mal :)

Otto123

naja mal egal was da wirklich getan werden muss ( ich habe das nicht praktisch probiert) wenn Du die environment Variable
       environment:
            GPIO_GID: 997
setzt und danach der Container nicht mehr startet, gibt es ein anderes Problem. Was genau bedeutet streikt?
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

fhemjan

Zitat von: Otto123 am 17 August 2022, 16:55:11
Was genau bedeutet streikt?

Ich wollte es gerade noch einmal nachbauen um dir den Fehlercode aus dem Log kopieren zu können und habe dabei meinen Fehler gefunden: Ich hatte die beiden /sys/... Volumes beim letzten Mal nicht gesetzt. Das habe ich jetzt direkt mit gemacht: Volumes + GPIO_GID: 997 haben mich nun direkt zum Ziel gebracht. Es funktioniert :) Vielen Dank!