Error Docker-compose

Status
Für weitere Antworten geschlossen.

scotty0302

Gesperrt
Mitglied seit
17. Dez 2020
Beiträge
50
Punkte für Reaktionen
2
Punkte
8
Liebe Forenmitglieder,

seit Tagen versuche ich mittels Dockerfile einen Openhab-Container zu erzeugen.


Code:
version: '2.2'

services:
  openhab3:
    image: "openhab/openhab:3.0.2"
    container_name: openhab3
    restart: always
    network_mode: default
    ports:
      - "38080:8080/tcp" # http
    volumes:     
      - "/etc/localtime:/etc/localtime:ro"
      - "/etc/timezone:/etc/timezone:ro"
      - "./openhab_addons:/openhab/addons"
      - "./openhab_conf:/openhab/conf"
      - "./openhab_userdata:/openhab/userdata"
    environment:
      OPENHAB_HTTP_PORT: "8080"
      OPENHAB_HTTPS_PORT: "8443"
      EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Berlin"
      USER_ID: "1000"
      GROUP_ID: "1000"

Ich erhalte allerdings regelmäßig eine Fehlermeldung bezogen auf die Zeilen 12 und 13 und zwar weil "localtime" und "timezone" nicht vorhanden sind.

Kann mir jemand bei der Lösung des Problems behilflich sein?

Danke
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Wenn man docker-compose verwendet, dann gibt es /etc/localtime. Sobald man den Container in der UI nach der Anlage editiert ist das Volume kaputt - die UI erlaubt keinen Zugriff auf Daten ausserhalb von Shares und streicht solches Volumes einfach aus der Container-Konfiguration.

Contaienr Starten/Stoppen über die UI ist okay - editieren macht ihn dann kaputt. Bedank Dich bei Synology für's kaputt patchen von IHRER Docker Distribution.

statt /etc/timezone:/etc/timezone:ro, verwende mal /etc/TZ:/etc/timezone:ro.
 
Zuletzt bearbeitet:
  • Like
Reaktionen: scotty0302

scotty0302

Gesperrt
Mitglied seit
17. Dez 2020
Beiträge
50
Punkte für Reaktionen
2
Punkte
8
OK, so funktioniert es schon mal wie du bereits geschrieben hast. Aber welche Vorgehensweise schlägst du denn vor? Und dann gibt es das nächste Problem: ich kann OH3 nicht über den Browser erreichen, woran mag das denn liegen?
Wenn du bezüglich der Konfiguration noch Verbesserungsvorschläge hast, wäre ich dir sehr dankbar. So lange beschäftigte ich mich mit der Thematik nämlich noch nicht.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Aber welche Vorgehensweise schlägst du denn vor?
Diesen Container ausschließlich mit docker-compose managen :) Und start/stop (wenn notwendig) dann eben über die UI.

ich kann OH3 nicht über den Browser erreichen, woran mag das denn liegen?
Der Zugriff muss über http://dsm-ip:38080 stattfinden, weil beim Portmapping Port 38080 verwendet wurde. Der Rest sieht erstmal stimmig aus, wenn man es mit der Dockerhub-Beschreibung vergleich.

Important: To be able to use UPnP for discovery the container needs to be started with --net=host.
Das könnt eventl. irgendwann noch relevant sein. Wenn man das Netzwerk auf host umstellt, muss man dann aber den unter OPENHAB_HTTP_PORT angegeben Port verwenden.


Ich selber verwende openHAB nicht.
 
  • Like
Reaktionen: scotty0302

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
USER_ID: "1000" GROUP_ID: "1000"
Sicher das das die UID und GID deines Benutzer auf der DS sind?

Geht mal auf die Shell und gib folgendes ein: id -u und setze die Zahl bei USER_ID, dann id -g und setze das bei GROUP_ID.
 
  • Like
Reaktionen: scotty0302

scotty0302

Gesperrt
Mitglied seit
17. Dez 2020
Beiträge
50
Punkte für Reaktionen
2
Punkte
8
Vielen Dank für die Hilfe. Es gibt doch bestimmt noch andere Möglichkeiten, den Container zu installieren. Es muss nicht unbedingt docker-compose sein.
 

scotty0302

Gesperrt
Mitglied seit
17. Dez 2020
Beiträge
50
Punkte für Reaktionen
2
Punkte
8
Darf ich denn mal fragen, wie du Images installierst bzw. Container erzeugst?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Images installiert man nicht. Ist wurscht, ob Du die über die UI ziehst, über die Kommandozeile mit docker pull ${imagename oder implizit durch docker-compose. Am Ende landen gezogene Images im lokalen Image-Cache.

Meine Container lasse ich mit docker-compose erzeugen. Mir ist die UI zu umständlich. Zudem unterstützt sie nur einen Bruchteil der Funktionalität die Docker bietet.
 
  • Like
Reaktionen: scotty0302

scotty0302

Gesperrt
Mitglied seit
17. Dez 2020
Beiträge
50
Punkte für Reaktionen
2
Punkte
8
Also, ich habe dich so verstanden, dass die Einstellungen möglichst korrekt sein sollten. Nachträgliches Editieren könnten zerstörende Folgen haben. Die Probleme mit dem Firefox bestehen weiterhin, es scheint an dem Browser zu liegen. Mit Vivaldi komme ich nämlich bis zu Anmeldung. Den benutze ich allerdings nur zum experimentieren. Ich schau mir den Feuerfuchs noch einmal genauer an. Dir wünsche ich einen schönen Abend.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Nachträgliches Editieren könnten zerstörende Folgen haben.
Nicht wirklich. Sie müssen nur stimmen, damit der Container richtig läuft :) Du kannst so oft korrigieren wie nötig.

Gut das Du zum Login kommst! Vivaldi ist gar nicht so schlecht. Ist im Kern ja auch wieder nur die Chrome-Engine mit netten Addons.
 
  • Like
Reaktionen: scotty0302

mamema

Benutzer
Mitglied seit
23. Okt 2009
Beiträge
667
Punkte für Reaktionen
132
Punkte
63
das zerschiessen von Container Settings weil direkt Host Dateien wie /etc/localtime kann durch Symbolic Links verhindern.

ln -s /etc/localtime /volume1/docker/localtime

dann im docker compose die Datei im volume1 referenzieren und man kann danach via GUI editieren ohne Probleme
 
  • Like
Reaktionen: scotty0302

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.481
Punkte für Reaktionen
364
Punkte
103
Du kannst so oft korrigieren wie nötig.
Da dachte ich tatsächlich auch nur an docker-compose und nicht an die UI. Wie man das in der UI entkräftigt hat mamema ja geschrieben.

Die Symlinks muss man auch nur einmalig je Datei anlegen - ich hab meine vor über 2 Jahren angelegt und seitdem schon diverse DSM und Docker Package updates gehabt ohne das man sie hätte erneut erzeugen müssen.
 
  • Like
Reaktionen: scotty0302

scotty0302

Gesperrt
Mitglied seit
17. Dez 2020
Beiträge
50
Punkte für Reaktionen
2
Punkte
8
Hier sind ja nur Vollprofis unterwegs, da kann ich noch nicht mithalten.

@mamema
"dann im docker compose die Datei im volume1 referenzieren..."

Wie macht man das?

@all
Im Netz habe ich diesen Code gefunden:

Code:
version: '2.2'

services:
  openhab3:
    image: "openhab/openhab:3.0.0"
    container_name: openhab3
    restart: unless-stopped
    networks:
      - default
    ports:
      - "38080:8080/tcp" # http
    volumes:
      - "/etc/localtime:/etc/localtime:ro"
      - "/etc/timezone:/etc/timezone:ro"
      - "/var/docker/openhab3/addons:/openhab/addons"
      - "/var/docker/openhab3/conf:/openhab/conf"
      - "/var/docker/openhab3/userdata:/openhab/userdata"
    environment:
      OPENHAB_HTTP_PORT: "8085"
      OPENHAB_HTTPS_PORT: "8449"
      EXTRA_JAVA_OPTS: "-Duser.timezone=Europe/Berlin"
      USER_ID: "9001"
      GROUP_ID: "9001"

  oh3persistence-db:
    image: mariadb
    container_name: openhab3-db
    command: --transaction-isolation=READ-COMMITTED --log-bin=ROW
    ports:
      - "33306:3306"
    restart: unless-stopped
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /var/docker/openhab3/database:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=MeinOHrootPW2 # Datenbank Passwort wählen
      - MYSQL_PASSWORD=MeinOHPW2 # Datenbank Passwort wählen, wird bei der Nextcloudinstallation abgefragt
      - MYSQL_DATABASE=openhab3
      - MYSQL_USER=openhab3
      - MYSQL_INITDB_SKIP_TZINFO=1 # Behebt die bekannten Startprobleme der Datenbank

Ich würde gerne den Block ab "oh3persistence-db:" übernehmen, dann wird zusätzlich das Image mariadb geladen. Allerdings meldet die Zeile "- /var/docker/openhab3/database:/var/lib/mysql" error weil es bei mir zur Zeit weder "database" noch "mysql" unter "/var/lib" gibt.

Wisst ihr vielleicht was da zu tun ist?
 
Zuletzt bearbeitet:

mamema

Benutzer
Mitglied seit
23. Okt 2009
Beiträge
667
Punkte für Reaktionen
132
Punkte
63
docker "Code" von oben modifizieren nachdem Du den Symlink erstellt hast.

statt:
volumes:
- "/etc/localtime:/etc/localtime:ro

dann:
volumes:
- "/volume1/share/wo/auch/immer/localtime:/etc/localtime:ro
 
  • Like
Reaktionen: scotty0302

scotty0302

Gesperrt
Mitglied seit
17. Dez 2020
Beiträge
50
Punkte für Reaktionen
2
Punkte
8
Ja super, aber mal ganz naiv gefragt: wie erstelle ich den Symlink (oder soll ich besser googeln)?
 

DrDeath

Benutzer
Mitglied seit
31. Aug 2018
Beiträge
193
Punkte für Reaktionen
79
Punkte
34
Ein Symlink ist nicht notwendig, wenn man das Volume einfach "read only" (ro) mounted, dann kann auch nichts passieren.

Code:
      - /etc/localtime:/etc/localtime:ro
      - /etc/TZ:/etc/timezone:ro
 
  • Like
Reaktionen: scotty0302
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat