Synology Docker: Could not initialize random number generator

Synology Docker: Could not initialize random number generator

synology docker nextcloud

Wer Nextcloud in Docker auf seiner Synology NAS betreibt, stolpert dabei seit Nextcloud Version 22 möglicherweise über den folgenden Fehler: AH00141: Could not initialize random number generator. Das Problem tritt auf meiner Synology DS716+II leider sowohl mit DSM 6.2 als auch DSM 7 auf.

Die Nextcloud läuft nach dem Update des Containers nicht mehr. Was tun? Erstmal tief durchatmen und dann Schritt für Schritt die Lösung suchen.

 [:crit] [pid 1] (38)Function not implemented: AH00141: Could not initialize random number generator
 [:crit] [pid 1] (38)Function not implemented: AH00141: Could not initialize random number generator
 [:crit] [pid 1] (38)Function not implemented: AH00141: Could not initialize random number generator

Eine ausgiebige Suche im Netz brachte mich schließlich zur Ursache des Problems: Der Kernel der DSM 6.2 als auch der DSM 7 ist zu alt bzw. die Synology Hardware unterstützt keinen Hardware Random-Number-Generator. Allerdings scheint das Fehlen des RNG Moduls bis Debian Buster kein Problem darzustellen - erst ab Debian Bullseye laufen die Docker Container nicht mehr auf dem NAS.

Mehr Details in diese beiden Isssues auf GitHub:

Damit eure Nextcloud wieder funktioniert müsst ihr "einfach" den Docker Container modifizieren und ein angepasstes Container Images erstellen. Da ich auf meiner Synology Portainer zur Verwaltung des Docker-Setups nutze und die Nextcloud als (Compose-)Stack deployed habe, orientiert sich diese Anleitung stark an den Funktionen von Portainer. Ihr könnt das Container-Build aber auch per SSH auf der Shell erstellen oder möglicherweise per Synology Oberfläche rein laden.

Bildschirmfoto_vom_2022-01-15_11-46-44

Damit ihr euch das manuelle Anpassen des Dockerfiles sparen könnt bzw. ein Beispiel habt, wie das Archiv hinterher aufgebaut sein muss, habe ich euch hier das fertige Tar-Archiv für Nextcloud 22 und Nextcloud 23 zum Download bereitgestellt.

  1. Aktuelle Nextcloud Docker Build Dateien von Github herunterladen Auf Github findet ihr hier die nötigen Dateien: https://github.com/nextcloud/docker. Anschließend braucht ihr lediglich den Inhalt des Verzeichnisses eurer Nextcloud Version (in meinem Fall /23/apache/).
  2. Dockerfile anpassen Ganz oben gibt es eine Zeile FROM php:8.0-apache-bullseye, die ihr ersetzen müsst mit php:8.0-apache-buster, damit Nextcloud das ältere Debian als Basis-Image nutzt, bei dem der Fehler mit dem RNG nicht auftritt.
  3. Dateien in ein Tar-Archiv packen
  4. Archiv in Portainer hochladen und Image z.B. mit nextcloud:23 taggen Bildschirmfoto_vom_2022-01-15_11-47-36
  5. Compose-Stack erneut starten und freuen!

Viel Spaß mit eurer "neuen" Nextcloud! :-)

Vorheriger Beitrag Nächster Beitrag