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 mit Nextcloud-Docker-Apache2 für Nextcloud 22, Nextcloud 23, Nextcloud 24, Nextcloud 25, Nextcloud 26, Nextcloud 27, Nextcloud 28 und Nextcloud 29 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. Bei den neueren Nextcloud Images bzw. wenn ihr PHP 8.2 nehmt, müsst ihr im Dockerfile bei apt install ggf. noch libssl-dev ergänzen.
  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