Ankündigung

Einklappen
Keine Ankündigung bisher.

HowTO Docker Synology ( x64 - version)

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • jes
    antwortet
    Hi,

    mir ist aufgefallen, dass die Festplatten nicht mehr in den Ruhezustand gehen, wenn das Docker Image läuft. Weiß jemand, ob das Grundlegend daran liegt, dass das Docker File auf dem Volume liegt (obwohl das ja im Arbeitsspeicher geladen sein sollte) oder weil SmarthomeNG die Log File Datei offen zum Schreiben hält, so dass deswegen die HDD nicht in den Ruhezustand geht?
    Evtl hat sich damit schon jemand genauer beschäfftigt.

    Danke vorab & Grüße,
    Jes

    Einen Kommentar schreiben:


  • jes
    antwortet
    Hi,

    ls -l lieferte:
    drwxrwxrwx 1 admin users 20 Dec 30 14:15 data
    -rw-r--r-- 1 1000 1000 14282 Dec 31 10:46 smarthome.log

    habe chown und chmod entsprechend ausgeführt, so dass nun nur noch der Owner "1000" entsprechend Schreibrechte hat.

    Grüße,
    Jes

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Super.
    Eine Aufgabe habe ich noch:
    mach mal ein ls -l in ./smarthome/var/log/

    Du wirst sehen, unter welchem User (möglicherweise wird nur eine numerische-ID) angegeben) und Gruppe der Docker-Container arbeitet, denn die Dateien werden mit dem User/Gruppe geschrieben.

    Jetzt ein chown -R user:gruppe ./smarthome und dann die Rechte wieder einschränken (chmod -R 755). Nur um keine Sicherheitslücken zu erzeugen.

    Wenn du statt numerischer IDs einen Nutzer und eine Gruppe haben willst, musst du den User und die Gruppe in der Synology anlegen -dabei musst du angeben, welche ID für den User/die Gruppe verwendet werden soll und dabei die IDs von oben verwenden -wenn das die Synology kann. Das ist aber nur kosmetik.

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • jes
    antwortet
    Vielen vielen Dank für die schnelle und kompetente Hilfe!

    Nun läuft alles.
    Die Smartvisu habe ich direkt in das web Verzeichnis der Diskstation gepackt (Apache). Nur zur Info, falls jemand auf ein ähnliches Problem stößt: in der Smartvisu muss der "temp" Order auch chmod 777 bekommen, wenn der Page Cache aktiviert ist.

    Einen guten Rutsch ins neue Jahr & Grüße,
    jes

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Mach Mal ein chmod -R 777 des ./smarthome Verzeichnis aus der docker-compose.yml

    Einen Kommentar schreiben:


  • jes
    antwortet
    Danke, nun laufen der knxd und smarthomeNG docker. Allerdings erhalte ich im NG einen Fehler, dass die Log Datei nicht geschrieben werden kann:
    Traceback (most recent call last): stderr
    13:42:19 File "/usr/local/smarthome/bin/smarthome.py", line 1149, in <module> stderr
    13:42:19 sh = SmartHome(extern_conf_dir=extern_conf_dir) stderr
    13:42:19 File "/usr/local/smarthome/bin/smarthome.py", line 240, in __init__ stderr
    13:42:19 self.init_logging(self._log_conf_basename, MODE) stderr
    13:42:19 File "/usr/local/smarthome/bin/smarthome.py", line 404, in init_logging stderr
    13:42:19 logging.config.dictConfig(doc) stderr
    13:42:19 File "/usr/lib/python3.4/logging/config.py", line 789, in dictConfig stderr
    13:42:19 dictConfigClass(config).configure() stderr
    13:42:19 File "/usr/lib/python3.4/logging/config.py", line 565, in configure stderr
    13:42:19 '%r: %s' % (name, e)) stderr
    13:42:19 ValueError: Unable to configure handler 'file': [Errno 13] Keine Berechtigung: '/usr/local/smarthome/var/log/smarthome.log'
    Muss ich evtl noch andere Rechte per chmod vergeben?

    Grüße,
    jes

    Einen Kommentar schreiben:


  • henfri
    antwortet

    privileged: true

    Einen Kommentar schreiben:


  • jes
    antwortet
    Es sieht so aus, dass der Docker keinen Zugriff auf das USB Device hat. Wenn man in der in der Docker GUI (DSM) den Container mit "hoher Priorität" (=root) startet, bootet der knxd erfolgreich.
    Jetzt komme ich erstmal weiter, will aber noch schauen, ob ich das über die docker-compose besser einschränken kann, so dass nicht der ganze docker im root Modus laufen müsste.
    Ein
    volumes:
    - /dev/bus/usb:/dev/bus/usb
    scheint noch nicht auszureichen.

    Einen Kommentar schreiben:


  • jes
    antwortet
    Danke, mit dem Script konnte ich nun den dev Pfad finden:
    admin@Diskstation:/volume1/docker$ bash scriptusb
    /dev/usb/hiddev8 - Gira_Giersiepen_GmbH___Co._KG_KNX-USB_Data_Interface_ffffffd1ffffffb2ffffffd3ffffffb 5

    --> /dev/usb/hiddev8

    Leider kommt es beim Start vom KNXD Docker immer noch zum Fehler:
    Startparameter: knxd -e 1.1.251 -t 65535 -i -TDS -c usb:/dev/usb/hiddev8 führt zu
    "initialisation of backend 'usb:/dev/usb/hiddev8' failed: No such file or directory"
    In Putty bin ich nach /dev/usb/ gegangen und kann dort "hiddev8" auch finden (in gelber Farbe).
    Aber der knxd bootet dennoch nicht.

    Grüße,
    jes

    Einen Kommentar schreiben:


  • henfri
    antwortet
    https://unix.stackexchange.com/quest...-serial-device

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Sorry ich weiß nicht, wie man den Namen der Schnittstelle herausfindet.

    Einen Kommentar schreiben:


  • jes
    antwortet
    Hi,

    ls /dev/tty* geht. Aber liefert kein /dev/ttyUSB* zurück (siehe screenshot).

    dmesg|grep -i usb liefert:
    Code:
    hid-generic 0003:135E:0022.0001: hiddev0: USB HID v1.01 Device [Gira Giersiepen GmbH & Co. KG KNX-USB Data Interface] on usb-0000:00:15.0-1/input0
    Grüße,
    jes
    Angehängte Dateien
    Zuletzt geändert von jes; 29.12.2018, 20:32.

    Einen Kommentar schreiben:


  • henfri
    antwortet
    Hallo,

    initialisation of backend 'usb:/dev/ttyUSB0' failed: No such file or directory
    Ist ja recht eindeutig.
    Kannst du auf der Synology kein ls /dev/tty* durchführen?

    Gruß,
    Hendrik

    Einen Kommentar schreiben:


  • jes
    antwortet
    Hallo,

    ich versuche die beiden Container auf meiner Diskstation per Docker Compose laufen zu lassen. Der smarthome-ng docker startet soweit. Allerdings bricht der KNXD ab mit der Fehlermeldung:
    Layer 0 [7:usb:/dev/ttyUSB0 0.000] USBLoop-Create: No such file or directory
    Layer 1 [7:usb:/dev/ttyUSB0 0.000] Close
    Layer 1 [7:usb:/dev/ttyUSB0 0.000] Release
    Layer 1 [7:usb:/dev/ttyUSB0 0.000] Close
    initialisation of backend 'usb:/dev/ttyUSB0' failed: No such file or directory
    Ich möchte den KNXD mit meiner Gira USB Schnittstelle verwenden. Ich vermute, dass die Startparameter nicht korrekt sind.
    Versucht habe ich bisher
    • command: knxd -e 1.1.251 -t 65535 -i -TDS -c usb:/dev/ttyUSB0
    • command: 'knxd -t 1023 -e 0.0.1 -E 0.0.2:8 -u /tmp/eib -t 1023 -b usb:'
      (hier musste ich die '' setzen, da sonst der docker mopert "ERROR: yaml.scanner.ScannerError: mapping values are not allowed here in "./docker-compose.yml", line 24, column 71")
    Per dmesg kann ich leider den USB Pfad nicht korrekt erkennen. Ich vermute, dass /dev/ttyUSB0 nicht korrekt ist.
    Ausgabe dmesg:
    hid-generic 0003:135E:0022.0002: hiddev0: USB HID v1.01 Device [Gira Giersiepen GmbH & Co. KG KNX-USB Data Interface] on usb-0000:00:15.0-1/input0

    Hat evtl jemand von euch den knxd docker mit USB Schnittstelle laufen und könnte mir seine Paramter zum testen nennen?
    Unten noch meine komplette docker-compose.yml

    Danke vorab & Grüße,
    jes

    Code:
    smarthome-ng:
      image: henfri/smarthome-ng:latest
      volumes:
        - ./smarthome/etc:/usr/local/smarthome/etc
        - ./smarthome/items:/usr/local/smarthome/items
        - ./smarthome/logics:/usr/local/smarthome/logics
        - ./smarthome/scenes:/usr/local/smarthome/scenes
        - ./smartvisu:/volume1/web/smartvisu
        - ./smarthome/var:/usr/local/smarthome/var
      privileged: true
      net: "host"
      restart: always
    
    knxd:
      image: henfri/knxd:latest
      net: "host"
    #  command: knxd -e 1.1.251 -t 65535 -i -TDS -c usb:/dev/ttyUSB0
      command: 'knxd -t 1023 -e 0.0.1 -E 0.0.2:8 -u /tmp/eib -t 1023 -b usb:'
      restart: always
    Zuletzt geändert von jes; 28.12.2018, 21:47.

    Einen Kommentar schreiben:


  • Onkelandy
    antwortet
    Um in die normale Shell Umgebung zu kommen, ist übrigens folgender Befehl notwendig:
    docker exec -t -i CONTAINER_NAME bash

    Einen Kommentar schreiben:

Lädt...
X