Impossible de reconstruire avec le problème suivant.
I, [2024-11-07T08:00:56.758061 #1] INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
rake aborted!
ArgumentError: Impossible de définir le double-stack en combinaison avec un point de terminaison personnalisé. (ArgumentError)
raise ArgumentError, "Cannot set dual-stack in combination with a custom endpoint."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets a échoué avec le retour #<Process::Status: pid 3349 exit 1>
Emplacement de l'échec : /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec a échoué avec les paramètres {"cd"=>"$home", "cmd"=>["sudo -E -u discourse bundle exec rake s3:upload_assets", "sudo -E -u discourse bundle exec rake s3:expire_missing_assets"]}
bootstrap a échoué avec le code de sortie 1
**ÉCHEC DU BOOTSTRAP** veuillez faire défiler vers le haut et rechercher les messages d'erreur précédents, il peut y en avoir plus d'un.
./discourse-doctor peut aider à diagnostiquer le problème.
567dc9e1f9a4e662de6024b8504915d8b6ef1ee2d9b4303af75323ba478679e4
J’ai commenté ces lignes, ce qui permet à la reconstruction de s’exécuter avec succès, mais le site reste bloqué sur l’écran de démarrage, je pense parce qu’il ne peut pas charger les ressources. Le mode sans échec pareil…
Ma reconstruction avec une configuration Digital Ocean Spaces S3 a commencé à échouer avec cette erreur :
, [2024-11-07T19:09:38.615466 #1] INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
rake aborted!
ArgumentError: Cannot set dual-stack in combination with a custom endpoint. (ArgumentError)
raise ArgumentError, "Cannot set dual-stack in combination with a custom endpoint."
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/endpoint_provider.rb:34:in `resolve_endpoint'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/plugins/endpoints.rb:37:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.191.3/lib/seahorse/client/plugins/endpoint.rb:47:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.191.3/lib/aws-sdk-core/plugins/param_validator.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.143.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
Mais omettre de le définir sur whatever fait échouer la construction comme ceci :
I, [2024-11-07T19:15:31.060936 #1] INFO -- : cd /var/www/discourse & sudo -E -u discourse bundle exec rake s3:upload_assets
ERROR: Ensure S3 is configured in config/discourse.conf or environment vars
I, [2024-11-07T19:15:36.056204 #1] INFO -- :
J’ai trouvé ceci :
et ceci :
Peut-être que S3_REGION devrait être effacé si un endpoint est défini ici ?
EDIT : Oups. Je pensais avoir cherché. Désolé Falco.
@martin, ce que nous faisons habituellement ici est de fournir un GlobalSetting pour désactiver le comportement qui permet aux personnes exécutant des clones S3 incompatibles de l’activer pour que cela fonctionne.
À mon avis, le comportement actuel devrait rester par défaut, mais des options devraient être fournies pour augmenter la compatibilité.
Voir des exemples similaires dans DISCOURSE_S3_HTTP_CONTINUE_TIMEOUT, DISCOURSE_S3_INSTALL_CORS_RULE, etc.
Ah désolé, c’est de ma faute à tous, ces clones S3 me sortent toujours de la tête. J’ai dû corriger ce problème de point de terminaison personnalisé avec Minio hier. Je pense que la correction ici consiste simplement à ne jamais utiliser dualstack si DISCOURSE_S3_ENDPOINT a été défini puisqu’ils sont incompatibles, et tout le monde ici l’utilise apparemment.
Merci pour le correctif rapide ! Je suis de retour en affaires.
Merci pour l’explication claire, Rafael !
C’est parce qu’il y a beaucoup de choses à garder à l’esprit ! Et les tests de spécification, je pense, nécessiteraient ces stub_request ennuyeux que je sais détester écrire.
Pour information, cela me semble correct. Et vous pourriez probablement écrire des tests pour cela qui ne nécessiteraient pas de stubs pour stub_request.
Cela me suggère que les spécifications ne sont pas assez larges pour capturer tous les cas d’utilisation réels et que des changements sont passés alors qu’ils n’auraient pas dû ?