Error al ejecutar "bundle exec rake s3:upload_assets": no se pudo localizar Gemfile ni directorio .bundle/

Estoy intentando ejecutar \"bundle exec rake s3:upload_assets\" como root y me da el siguiente error: Could not locate Gemfile or .bundle/ directory.

También intenté hacerlo sin ser root, usando \"sudo -E -u discourse bundle exec rake s3:upload_assets\" y me dio el siguiente error: sudo: unknown user discourse\nsudo: error initializing audit plugin sudoers_audit

  • Hice ambos comandos en el siguiente directorio: /var/discourse
  • Esta es una instalación normal, no estoy usando docker ni nada parecido.

¿Cómo puedo solucionar esto para poder ejecutarlo?

Gracias.

Necesitas ejecutarlo dentro del contenedor.

cd /var/discourse
./launcher enter app

Y luego ejecutar ese comando.

1 me gusta

¡Gracias! Eso me ha llevado más lejos, ahora estoy con este error:

root@redacted:/var/www/discourse# sudo -E -u discourse bundle exec rake s3:upload_assets
/root no es escribible.
Bundler usará `/tmp/bundler20250409-510203-w6snye510203` como tu directorio temporal de inicio.
ERROR: Asegúrate de que S3 esté configurado en config/discourse.conf o en variables de entorno.

Tengo todo configurado en los ajustes del sitio de Discourse. No estoy usando Docker, así que no necesitaría variables de entorno.

Intenté agregar las variables de entorno en app.yml, reconstruir y volver a ingresar a la aplicación y ejecutar el comando y me da esto:

`/root` no se puede escribir.
Bundler usará `/tmp/bundler20250409-1393-48ek5u1393' como tu directorio de inicio temporalmente.
Instalando reglas CORS...
Intentando aplicar el conjunto de reglas CORS de ASSETS S3 en el bucket biohacking-forum.
rake abortó!
Seahorse::Client::NetworkingError: Cuerpo de respuesta vacío 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>'
Tareas: TOP => s3:upload_assets => s3:ensure_cors_rules
(Ver el rastreo completo ejecutando la tarea con --trace)

Todavía no puedo resolver esto :frowning:

Necesitas variables de entorno, por eso está documentado de esa manera en Configurar un proveedor de almacenamiento de objetos compatible con S3 para cargas y por eso el mensaje de error te dice que lo hagas.

Todas las variables de S3 deben moverse a la configuración oculta, ya que en su mayoría no puede salir nada bueno de configurarlas en la configuración.

Lo siento, y olvidé que no estás usando Docker. Pero sí, todavía necesitas establecerlas en las variables de entorno. Yo hago eso en mi entorno de desarrollo para restaurar bases de datos de S3.

Si no estás haciendo esto para un entorno de desarrollo, es muy probable que estés cometiendo un gran error.

@Eviepayne

Lo arreglé haciendo lo siguiente: había dos errores.

Primero, arreglé el segundo error haciendo lo siguiente:

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

Esto arregló la publicación corrupta (texto malformado o algo así).

Luego, los errores rojos en la pantalla se debieron al uso del subdominio aleatorio (proporcionado por Cloudflare) y a la carga en él. Tuve que cargar los archivos en el nuevo dominio (que incluye mi dominio conectado).

Usando:

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

Luego:

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

Luego, el foro se cargó correctamente y al hacer clic derecho y abrir imágenes en una nueva pestaña se muestra que están alojadas en R2. Luego hice una copia de seguridad.

Finalmente, limpié todo usando:

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

Lo que liberó el espacio de almacenamiento respectivo de los archivos (tenga en cuenta que todavía tengo una copia de seguridad local de ambos archivos (nivel del sistema operativo) y nivel de discourse antes de la migración).

¡Ahora todo funciona perfectamente!

3 Me gusta

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