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: Cannot set dual-stack in combination with a custom endpoint. (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 failed with return #<Process::Status: pid 3349 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"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 failed with exit code 1
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
567dc9e1f9a4e662de6024b8504915d8b6ef1ee2d9b4303af75323ba478679e4
Comentei essas linhas, o que faz com que a reconstrução seja executada com sucesso, mas o site fica preso na tela inicial, acho que porque não consegue carregar os ativos. Modo de segurança igual…
Minha reconstrução com uma configuração do Digital Ocean Spaces S3 começou a falhar com este erro:
, [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'
Mas omitir a configuração para whatever faz com que a compilação falhe assim:
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 -- :
Eu encontrei isto:
e isto:
Talvez S3_REGION deva ser limpo se um endpoint for definido aqui?
EDIT: Ops. Achei que tinha pesquisado. Desculpe Falco.
@martin geralmente o que fazemos aqui é fornecer uma GlobalSetting para desabilitar o comportamento que permite que pessoas executando clones S3 incompatíveis possam optar por fazê-lo funcionar.
Na minha opinião, o comportamento atual deve permanecer como padrão, mas fornecer opções para aumentar a compatibilidade.
Veja exemplos anteriores em DISCOURSE_S3_HTTP_CONTINUE_TIMEOUT, DISCOURSE_S3_INSTALL_CORS_RULE, etc.
Ah, desculpe, falha minha, pessoal. Esses clones de S3 sempre me escapam. Na verdade, tive que corrigir esse problema de endpoint personalizado com o Minio ontem. Acho que a correção aqui pode ser simplesmente nunca usar dualstack se DISCOURSE_S3_ENDPOINT foi definido, já que eles são incompatíveis, e todo mundo aqui aparentemente está usando isso.
Obrigado pela correção rápida! Estou de volta aos negócios.
Obrigado pela explicação clara, Rafael!
Isso porque há muita coisa para se lembrar! E os testes de especificação, acho, exigiriam aqueles stub_requests irritantes que eu sei que odeio escrever.
Só para constar, isso me parece certo. E você provavelmente poderia escrever testes para isso que não exigissem stubs para stub_requests.
Isso sugere que as especificações não são amplas o suficiente para capturar todos os casos de uso reais e que alterações estão sendo aprovadas quando não deveriam?