Ihre Docker-Installation verwendet keinen unterstützten Speicher-Driver.

Hallo, ich bin Discourse-Neuling und habe nicht viel technisches Vorwissen.

Ich habe Discourse auf Lightsail Ubuntu 18.04.2 gemäß den offiziellen Anweisungen installiert. Das Forum läuft problemlos.

Nun habe ich versucht, ein Plugin zu installieren: Install plugins on a self-hosted site

./launcher rebuild app ergibt diesen Fehler:

“Ihre Docker-Installation verwendet keinen unterstützten Storage-Treiber. Falls wir fortfahren, könnte die Installation fehlerhaft sein. aufs ist der empfohlene Storage-Treiber, obwohl zfs/btrfs/overlay und overlay2 ebenfalls funktionieren könnten. Andere Storage-Treiber sind bekanntlich problematisch. Sie können herausfinden, welches Dateisystem Sie verwenden, indem Sie ‘docker info’ ausführen und die Zeile ‘Storage Driver’ prüfen. Wenn Sie trotzdem mit Ihrem vorhandenen, nicht unterstützten Storage-Treiber fortfahren möchten, lesen Sie den Quellcode von launcher und finden Sie heraus, wie Sie diese Prüfung umgehen können.”

Ich habe in diesem Forum nach derselben Meldung gesucht, aber aus den Antworten ist mir nicht ganz klar, was genau zu tun ist.

Docker info auf meinem System zeigt overlay2.

Ich bin mir nicht sicher, wie Discourse ordnungsgemäß installiert werden kann, während die Plugin-Installation bzw. der Neuaufbau fehlschlägt.

Zwischen der Installation und dem Versuch, das Plugin zu installieren bzw. neu aufzubauen, habe ich lediglich Discourse und den Docker-Manager gemäß einer Benachrichtigung aktualisiert sowie apt-get update und apt-get upgrade ausgeführt.

Kann jemand klären, ob overlay2 funktioniert? Oder wird aufs benötigt? Welche Anweisungen muss ich genau befolgen, damit die Plugin-Installation funktioniert?

Vielen Dank,
Maynard

Kannst du bitte docker info ausführen und die Ausgabe hier einfügen?

Vielen Dank für die schnelle Antwort. Hier ist die Ausgabe von docker info:

Client:
 Debug Mode: false

Server:
 Containers: 1
Running: 1
Paused: 0
Stopped: 0
 Images: 2
 Server Version: 19.03.1
 Storage Driver: overlay2
Backing Filesystem: extfs
Supports d_type: true
Native Overlay Diff: true
 Logging Driver: json-file
 Cgroup Driver: cgroupfs
 Plugins:
Volume: local
Network: bridge host ipvlan macvlan null overlay
Log: awslogs fluentd gcplogs gelf journald json-file local logentries splunk syslog
 Swarm: inactive
 Runtimes: runc
 Default Runtime: runc
 Init Binary: docker-init
 containerd version: 894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc version: 425e105d5a03fabd737a126ad93d62a9eeede87f
 init version: fec3683
 Security Options:
apparmor
seccomp
Profile: default
 Kernel Version: 4.15.0-1044-aws
 Operating System: Ubuntu 18.04.2 LTS
 OSType: linux
 Architecture: x86_64
 CPUs: 1
 Total Memory: 1.945GiB
 Name: ip-172-26-45-250
 ID: X2FT:FW3R:QQM2:BNNU:4L3L:QYEV:WMI4:IC2T:LHJV:UNSG:RYHH:OWJ7
 Docker Root Dir: /var/lib/docker
 Debug Mode: false
 Registry: https://index.docker.io/v1/
 Labels:
 Experimental: false
 Insecure Registries:
127.0.0.0/8
 Live Restore Enabled: false

WARNING: No swap limit support

Ah, ich glaube, ich weiß, was los ist.

Versuchen Sie Folgendes:

cd /var/discourse
git pull
./launcher rebuild app

Nochmals vielen Dank für die schnelle Antwort.

Das Hinzufügen von git pull hat funktioniert, und das Data Explorer-Plugin läuft jetzt einwandfrei.

Seltsam. Was war das?

Nun, eine lange Geschichte.

Docker 19.x hat die gesamte Struktur der Ausgabe von docker info geändert.

Wir haben das bereits vor mehr als einem Monat behoben, als 19.x sich noch in der Beta-Phase befand: FIX: Make storage detection compatible with docker 19.x · discourse/discourse_docker@98c5fec · GitHub. Dass unser Launcher-Skript automatisch aktualisiert wird, ist für die meisten kein Problem.

Unser launcher-Skript prüft jedoch die Speicher-Kompatibilität, bevor es sich automatisch aktualisiert. Daher können Nutzer, die einen alten Launcher haben und Docker aktualisieren, bevor sie den Launcher aktualisieren, in diesen Zustand geraten.

Das ist nicht das erste Mal, dass wir auf dieses Problem stoßen. Könnte der Launcher nicht zuerst aktualisiert werden und dann der Benutzer aufgefordert werden, ihn erneut auszuführen?

Ja, das sollte es. Möchtest du diesen Versuch machen?