Errore durante l'esecuzione di "bundle exec rake s3:upload_assets" - Impossibile trovare Gemfile o directory .bundle/

Sto provando a eseguire "bundle exec rake s3:upload_assets" come root e restituisce il seguente errore: Could not locate Gemfile or .bundle/ directory.

Ho anche provato a eseguirlo senza essere root, usando "sudo -E -u discourse bundle exec rake s3:upload_assets" e ha restituito il seguente errore: sudo: unknown user discourse\nsudo: error initializing audit plugin sudoers_audit

  • Ho eseguito entrambi i comandi nella seguente directory: /var/discourse
  • Questa è un’installazione normale, non sto usando docker o altro.

Come posso risolvere questo problema per poterlo eseguire?

Grazie.

Devi eseguirlo all’interno del container.

cd /var/discourse
./launcher enter app

E poi esegui quel comando

1 Mi Piace

Grazie! Questo mi ha fatto fare ulteriori progressi, ora sono arrivato a questo errore:

root@redacted:/var/www/discourse# sudo -E -u discourse bundle exec rake s3:upload_assets
/root non è scrivibile.
Bundler utilizzerà temporaneamente `/tmp/bundler20250409-510203-w6snye510203` come directory home.
ERRORE: Assicurati che S3 sia configurato in config/discourse.conf o nelle variabili ambientali

Ho tutto configurato nelle impostazioni del sito Discourse. Non sto usando Docker, quindi non dovrei aver bisogno delle variabili di ambiente?

Ho provato ad aggiungere le variabili d’ambiente in app.yml, ricostruire e reinserire l’app ed eseguire il comando e questo è ciò che viene visualizzato:

`/root` non è scrivibile.
Bundler utilizzerà temporaneamente `/tmp/bundler20250409-1393-48ek5u1393` come directory home.
Installazione delle regole CORS...
Tentativo di applicare il set di regole CORS S3 ASSETS nel bucket biohacking-forum.
rake interrotto!
Seahorse::Client::NetworkingError: Corpo della risposta vuoto o incompleto (Seahorse::Client::NetworkingError)
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/plugins/raise_response_errors.rb:17:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/sse_cpk.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/dualstack.rb:21:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/plugins/accelerate.rb:43:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/checksum_algorithm.rb:169:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/jsonvalue_converter.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/invocation_id.rb:16:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/idempotency_token.rb:19:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/param_converter.rb:26:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/plugins/request_callback.rb:89:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/response_paging.rb:12:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/plugins/response_target.rb:24:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/telemetry/no_op.rb:29:in `in_span'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/telemetry.rb:53:in `span_wrapper'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/aws-sdk-core/plugins/telemetry.rb:39:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-core-3.219.0/lib/seahorse/client/request.rb:72:in `send_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/aws-sdk-s3-1.182.0/lib/aws-sdk-s3/client.rb:6359:in `get_bucket_cors'
/var/www/discourse/lib/s3_helper.rb:401:in `fetch_bucket_cors_rules'
/var/www/discourse/lib/s3_helper.rb:168:in `ensure_cors!'
/var/www/discourse/lib/s3_cors_rulesets.rb:60:in `sync'
/var/www/discourse/lib/tasks/s3.rake:183:in `block in <main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rake-13.2.1/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Tasks: TOP => s3:upload_assets => s3:ensure_cors_rules
(Vedere la traccia completa eseguendo il task con --trace)

Non riesco ancora a capire :frowning:

È necessario che tu imposti le variabili d’ambiente, è per questo che è documentato in quel modo su Configure an S3 compatible object storage provider for uploads e perché il messaggio di errore ti dice di farlo.

Tutte le variabili S3 dovrebbero essere spostate nelle impostazioni nascoste, poiché per lo più non può derivare nulla di buono dalla loro configurazione nelle impostazioni.

Mi dispiace, e ho dimenticato che non stai usando Docker. Ma sì, devi comunque impostarle nelle variabili ENV. Lo faccio nel mio ambiente di sviluppo per ripristinare i database da S3.

Se non lo stai facendo per un ambiente di sviluppo, stai molto probabilmente commettendo un grosso errore.

@Eviepayne

L’ho risolto facendo quanto segue: c’erano due errori.

Per prima cosa, ho corretto il secondo errore facendo quanto segue:

rails c
Upload.find(386).destroy!
exit

Questo ha corretto il post corrotto (testo malformattato o qualcosa del genere).

Quindi gli errori rossi sullo schermo provenivano dall’uso del sottodominio casuale (fornito da cloudflare) e dal caricamento su quello. Ho dovuto caricare i file sul nuovo dominio (che include il mio dominio connesso).

Utilizzo:

sudo -E -u discourse bundle exec rake s3:upload_assets

Poi:

sudo -E -u discourse bundle exec rake uploads:migrate_to_s3

Quindi il forum si è caricato correttamente e facendo clic destro e aprendo le immagini in una nuova scheda si vede che sono ospitate su R2. Poi ho fatto un backup.

Infine, ho ripulito tutto usando:

sudo -E -u discourse bundle exec rake uploads:clean_up

Il che ha liberato lo spazio di archiviazione rispettivamente dei file (nota che ho ancora un backup locale di entrambi i file (a livello di sistema operativo) e a livello di discourse prima della migrazione).

Ora tutto funziona perfettamente!

3 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.