In Ordnung, ich konnte den Fehler beheben und reproduzieren.
TL;DR
- Das Zurücksetzen auf eine zuvor funktionierende S3-Konfiguration und das Löschen sowie die Neuinstallation des DiscoTOC-Komponenten führen zu einer fehlerfreien Installation der Komponente.
- Das Deaktivieren von S3 durch Auskommentieren aller S3-Direktiven in app.yml führt dazu, dass der Fehler wieder auftritt, wenn die Komponente installiert wird, und ich vermute, beim Aktualisieren wird der Fehler auch wieder erscheinen.
- Das Setzen von
DISCOURSE_USE_S3: false stoppt nicht, dass Discourse S3-Pfade verwendet; das wirkt wie ein Fehler oder diese Einstellung tut nicht das, was ich denke, dass sie tut.
Detaillierte Übersicht
Zunächst habe ich mein Minio-Setup wieder aktiviert, die Konfigurationsoptionen in my app.yml auskommentiert, die App neu gebaut und die Aufgabe s3:upload_assets ausgeführt. Sobald die Seite wieder online war, navigierte ich zum Abschnitt Komponenten. Die bereits installierte DiscoTOC-Komponente zeigte noch den Fehler, aber als ich sie löschte und neu installierte, trat der Fehler nicht wieder auf. Während der Installation der DiscoTOC-Komponente wurde sprite.svg von meinem S3-Server angefordert.
Bei dem Versuch, das Problem zu reproduzieren, stieß ich auf ein interessantes Problem. Es scheint, dass wenn ich alle S3-Direktiven in meiner app.yml aktiv lasse, also nicht auskommentiere, aber DISCOURSE_USE_S3: false setze, die Frontend-Seite nicht lädt, wenn Minio nicht läuft.
Vielleicht ist DISCOURSE_USE_S3: false nicht dazu gedacht, den gesamten S3-Zugriff zu deaktivieren. Ich vermute es aufgrund des Namens, aber das scheint nicht der Fall zu sein. Sobald ich den Minio-Dienst neu starte und die Seite aktualisiere, funktioniert alles einwandfrei. Ich kann in diesem Zustand auch die DiscoTOC-Komponente deinstallieren und neu installieren, ohne den Fehler zu reproduzieren. Das scheint mindestens ein Fehler zu sein.
Hier ist der dritte Zustand, der mich zum reproduzierbaren Fehler geführt hat:
Um meine Seite ohne laufendes Minio wieder zum Arbeiten zu bringen, habe ich alle Einträge auskommentiert, die mit S3 zu tun hatten. Dann habe ich die App neu gebaut, und auch wenn Minio nicht läuft, lädt das Frontend ohne Probleme. Wenn ich aber die DiscoTOC-Komponente deinstalliere und wieder installiere, erscheint der Fehler erneut. Ich habe es auch versucht, Minio in diesem Zustand zu starten, aber der Fehler trat erneut bei der Neuinstallation auf, vermutlich weil keine S3-Direktiven in app.yml gesetzt waren und sie somit im Hintergrund vielleicht auf Standardwerte zugreifen. Es scheint jedoch, dass einige Bilder auch nach einem posts:rebake noch von S3 geladen werden (z.B. 1531a70abda0d81d1a4039b6f3fa38bea79ef0de_2_180x180.png/xl.meta).