D’accord, j’ai réussi à faire disparaître l’erreur et à la reproduire.
TL;DR
- Revenir à une configuration S3 qui fonctionne auparavant, puis supprimer et réinstaller le composant DiscoTOC, résulte en une installation du composant sans erreur.
- Désactiver S3 en commentant toutes les directives S3 dans app.yml entraîne la réapparition de l’erreur lors de l’installation du composant, et je suppose que lors de la mise à jour l’erreur reviendra également.
- La configuration
DISCOURSE_USE_S3: falsen’empêche pas Discourse d’utiliser des chemins S3, cela ressemble à un bug ou cette option ne fonctionne pas comme je le pense.
Vue d’ensemble détaillée
Initialement, ce que j’ai fait, c’est de relancer ma configuration Minio, décommenter les options de configuration dans mon app.yml, reconstruire l’application, et m’assurer d’exécuter la tâche s3:upload_assets. Une fois le site relancé, je suis allé dans la section des composants. Le composant DiscoTOC déjà installé affichait toujours l’erreur, mais lorsque je l’ai supprimé et réinstallé, l’erreur n’est pas réapparue. Lors de l’installation du composant DiscoTOC, sprite.svg a été demandé depuis mon serveur S3.
Dans le cadre de la tentative de reproduction du problème, j’ai rencontré un problème intéressant. Il semble que lorsque je laisse toutes les directives S3 dans mon app.yml actives, c’est-à-dire non commentées, mais que je définis DISCOURSE_USE_S3: false, le frontend du site ne charge pas si Minio n’est pas en marche.
Peut-être que DISCOURSE_USE_S3: false n’est pas destiné à désactiver tout accès S3, je suppose que cela fonctionne selon le nom, mais apparemment ce n’est pas le cas. Dès que je redémarre le service Minio et actualise le frontend, tout fonctionne bien. Je peux également désinstaller et réinstaller le composant DiscoTOC sans reproduire l’erreur dans cet état. Cela semble être, au moins potentiellement, un bug.
Voici le troisième état qui m’a permis de reproduire l’erreur.
Pour faire fonctionner mon site sans que Minio soit en marche, j’ai commenté toutes les entrées qui avaient un rapport avec S3 dans la configuration. Ensuite, j’ai reconstruit l’application et maintenant, sans que Minio ne tourne, le chargement du frontend se fait sans problème. Cependant, si je désinstalle et réinstalle le composant DiscoTOC, l’erreur apparaît à nouveau. J’ai aussi essayé de lancer simplement Minio dans cet état, mais l’erreur est réapparue lors de la réinstallation. Cela est probablement dû au fait qu’il n’y a aucune directive S3 dans app.yml, donc même si l’application tente d’accéder à S3 en coulisses, elle utilise des valeurs par défaut plutôt qu’une configuration fonctionnelle. Cependant, il semble que certaines images essaient encore d’être servies depuis S3 même après un posts:rebake (par exemple 1531a70abda0d81d1a4039b6f3fa38bea79ef0de_2_180x180.png/xl.meta).