Fehler beim Ausführen von "bundle exec rake s3:upload_assets" - Gemfile oder .bundle/-Verzeichnis konnte nicht gefunden werden

Ich versuche, "bundle exec rake s3:upload_assets" als root auszuführen, und erhalte die folgende Fehlermeldung: Could not locate Gemfile or .bundle/ directory.

Ich habe auch versucht, es ohne root auszuführen, mit "sudo -E -u discourse bundle exec rake s3:upload_assets", und es gab die folgende Fehlermeldung: sudo: unknown user discourse\nsudo: error initializing audit plugin sudoers_audit

  • Ich habe beide Befehle im folgenden Verzeichnis ausgeführt: /var/discourse
  • Dies ist eine normale Installation, ich verwende kein Docker oder Ähnliches.

Wie kann ich das beheben, damit ich dies ausführen kann?

Vielen Dank.

Sie müssen es innerhalb des Containers ausführen.

cd /var/discourse
./launcher enter app

Und dann diesen Befehl ausführen

1 „Gefällt mir“

Danke! Das hat mich weitergebracht, ich bin jetzt bei dieser Fehlermeldung:

root@redacted:/var/www/discourse# sudo -E -u discourse bundle exec rake s3:upload_assets
/root ist nicht beschreibbar.
Bundler wird `/tmp/bundler20250409-510203-w6snye510203' als Ihr Home-Verzeichnis temporär verwenden.
FEHLER: Stellen Sie sicher, dass S3 in config/discourse.conf oder Umgebungsvariablen konfiguriert ist.

Ich habe alles in den Discourse-Seiteneinstellungen konfiguriert. Ich benutze kein Docker, daher benötige ich keine Umgebungsvariablen?

Ich habe versucht, die Umgebungsvariablen in app.yml hinzuzufügen, neu zu erstellen und die App erneut aufzurufen und den Befehl auszuführen, und er gibt Folgendes aus:

`/root` ist nicht beschreibbar.
Bundler wird `/tmp/bundler20250409-1393-48ek5u1393` als Ihr Home-Verzeichnis temporär verwenden.
CORS-Regeln werden installiert...
Versuch, ASSETS S3 CORS-Regelwerk im Bucket biohacking-forum anzuwenden.
rake fehlgeschlagen!
Seahorse::Client::NetworkingError: Leerer oder unvollständiger Antwortkörper (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
(Trace mit --trace ausführen, um den vollständigen Trace anzuzeigen)

Ich kann das immer noch nicht herausfinden :frowning:

Sie benötigen immer noch Umgebungsvariablen. Deshalb ist es dort so dokumentiert: Konfigurieren Sie einen S3-kompatiblen Objektspeicheranbieter für Uploads und deshalb weist Sie die Fehlermeldung an, dies zu tun.

Alle S3-Variablen sollten in versteckte Einstellungen verschoben werden, da die Konfiguration in den Einstellungen meist nichts Gutes bewirken kann.

Entschuldigung, und ich habe vergessen, dass Sie Docker nicht verwenden. Aber ja, Sie müssen sie immer noch in den ENV-Variablen festlegen. Ich mache das in meiner Entwicklungsumgebung, um Datenbanken von S3 wiederherzustellen.

Wenn Sie dies nicht für eine Entwicklungsumgebung tun, machen Sie höchstwahrscheinlich einen großen Fehler.

@Eviepayne

Ich habe es behoben, indem ich Folgendes getan habe – es gab zwei Fehler.

Erstens habe ich den zweiten Fehler behoben, indem ich Folgendes getan habe:

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

Dies hat den beschädigten Beitrag behoben (fehlerhafte Formatierung des Textes oder so etwas).

Dann kamen die roten Fehler auf dem Bildschirm von der Verwendung der zufälligen Subdomain (von Cloudflare bereitgestellt) und dem Hochladen darauf. Ich musste die Dateien auf die neue Domain hochladen (die meine verbundene Domain enthält).

Verwenden Sie:

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

Dann:

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

Dann wurde das Forum richtig geladen und wenn man mit der rechten Maustaste auf Bilder klickt und sie in einem neuen Tab öffnet, sieht man, dass sie auf R2 gehostet werden. Dann habe ich ein Backup gemacht.

Schließlich habe ich alles bereinigt mit:

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

Dadurch wurde der entsprechende Speicherplatz der Dateien freigegeben (beachten Sie, dass ich immer noch ein lokales Backup beider Dateien (auf OS-Ebene) und auf Discourse-Ebene vor der Migration habe).

Jetzt funktioniert alles perfekt!

3 „Gefällt mir“

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