Va bene, sono riuscito a far scomparire l’errore e a reproducerlo.
TL;DR
- Tornare a una configurazione S3 funzionante in precedenza eliminando e reinstallando il componente DiscoTOC porta a un’installazione del componente priva di errori.
- Disabilitare S3 commentando tutte le direttive S3 in app.yml fa riapparire l’errore al momento dell’installazione del componente, e presumo che all’aggiornamento ritornerà anche l’errore.
- Impostando
DISCOURSE_USE_S3: falsenon si impedisce a Discourse di usare percorsi S3, sembra un bug o questa impostazione non fa quello che penso faccia.
Panoramica dettagliata
All’inizio ho riattivato la configurazione di minio, decommentato le opzioni in app.yml, ricostruito l’app e assicurato di aver eseguito il task s3:upload_assets. Una volta che il sito era ripartito sono passato alla sezione componenti. Il componente DiscoTOC già installato mostrava ancora l’errore, tuttavia, quando l’ho cancellato e reinstallato l’errore non si è ripresentato. Durante l’installazione del componente DiscoTOC è stato richiesto sprite.svg dal mio server S3.
Nel tentativo di riprodurre il problema sono incappato in una questione interessante. Pare che quando lascio tutte le direttive S3 in app.yml attive, cioè non commentate, ma impostato DISCOURSE_USE_S3: false, il frontend del sito non si carica se minio non è in funzione.
Forse DISCOURSE_USE_S3: false non dovrebbe disabilitare tutto l’accesso S3, suppongo che lo faccia in base al nome, ma chiaramente non è così. Appena riavvio il servizio minio e aggiorno il frontend tutto funziona correttamente. Inoltre posso disinstallare e reinstallare il componente DiscoTOC senza riprodurre l’errore in questo stato. Questo sembra almeno un possibile bug.
Ecco il terzo stato che mi ha portato all’errore riproducibile.
Per far funzionare di nuovo il sito senza minio in funzione ho commentato tutte le voci di configurazione che avevano a che fare con S3. Poi ho ricostruito l’app e ora, senza minio in funzione, il frontend si carica senza problemi. Tuttavia, se disinstallo e reinstallo il componente DiscoTOC l’errore ricompare. Ho anche provato ad avviare minio in questa configurazione, ma l’errore si ripresenta al riinstall, probabilmente perché non ci sono direttive S3 impostate nel file app.yml e quindi, anche se cerca di accedere a S3 dietro le quinte, usa valori di default invece di una configurazione funzionante. Sembra comunque che alcune immagini continuino a essere servite da S3 anche dopo un post:rebake (ad esempio 1531a70abda0d81d1a4039b6f3fa38bea79ef0de_2_180x180.png/xl.meta)