¡Hola a todos!
Estaba intentando actualizar el foro de Discourse usando el enlace publicado en el panel de administración y me apareció este error. Todo el foro ha desaparecido. ¿Qué debo hacer ahora para restablecer la actualización? Muchas gracias si alguien puede ayudarme.
Intenté ./launcher rebuild app y obtuve los siguientes mensajes de error:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development' failed with return #<Process::Status: pid 340 exit 5>
Ubicación del fallo: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}
6e9e60bd6b6113cdcb001127fd2a24fe86f2a1658bf24500e5e2b720fd793510
** 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.
y me desplacé hacia arriba y encontré algunos registros de errores posibles:
1)200:M 25 Jun 2023 16:00:16.252 # Failed listening on port 6379 (TCP), aborting.
2)[DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local without 'test development'`, and stop using this flag
3)Bundler::PathError: The path `/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/sprockets-f4d3dae71ef2` does not exist.
4)Bundler::InstallError: sass-embedded-1.63.6-x86_64-linux requires rubygems version >= 3.3.22, which is incompatible with the current version, 3.2.18
Muchas gracias por tu respuesta, pero creo que no es el mismo problema, mi servidor está en Alemania. Estoy usando la imagen de Docker de Discourse para mi servidor. ¿Qué debo hacer si ./launcher rebuild app no funciona?
Leí los últimos documentos del programador para mí y dice que debido a que muchas cosas de la web se ejecutan detrás de nginx y discourse también necesita ser alojado detrás de nginx. La instalación estándar no funciona para mi situación.
y lo siguiente es cómo lo dijo en el documento y cómo lo hizo:
Discourse se ejecuta en un contenedor docker. Sin embargo, requiere un tipo especial de configuración, no a través de un archivo docker-compose.yml o un archivo .conf.
El repositorio de github discourse-project/ que requiere configurar y construir la imagen de docker se puede encontrar aquí. Ignora el agradable y jugoso programa “discourse-setup” que proporcionan, eso no funcionará aquí. Necesitamos configurar la aplicación nosotros mismos.
clona discourse_docker a /var/discourse: git clone https://github.com/discourse/discourse_docker.git /var/discourse
ve a la carpeta y usa una configuración de muestra proporcionada: cd /var/discourse && cp samples/standalone.yml containers/app.yml
luego edita el archivo containers/app.yml (por ejemplo, con sudo nano)
Se realizaron cambios en la sección de alojamiento, la configuración smtp para el correo y, lo que es importante, la sección de exposición para que solo se exponga un puerto no utilizado al exterior.
Para ejecutar discourse en una ruta como “/forum”, se necesitaron algunos cambios más, como se describe aquí
También ocurren algunos problemas con la autenticación por correo electrónico:
El correo que envía correos electrónicos está aquí “correo electrónico del servidor”. Sin embargo, Discourse espera que el correo tenga el mismo dominio que su host, es decir, “correo electrónico del servidor”.
¡Gracias por tu respuesta! La versión de la que estoy actualizando es la 2.8.0.beta6 y la última actualización fue el 28.09.2021.
Después de ejecutar cat /etc/issue obtuve: Debian GNU/Linux 9 \n \l
Y la siguiente información según ./discourse-doctor
==================== MEMORY INFORMATION ====================
RAM (MB): 4050
total used free shared buff/cache available
Mem: 3955 427 1152 63 2375 3182
Swap: 0 0 0
==================== DISK SPACE CHECK ====================
---------- OS Disk Space ----------
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 63G 27G 34G 45% /
==================== DISK INFORMATION ====================
Disk /dev/sda: 64 GiB, 68719476736 bytes, 134217728 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc0b6220c
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 134217727 134215680 64G 83 Linux
Realmente necesitas mover todo a una nueva máquina virtual con un sistema operativo compatible. Así que también necesitarás actualizar cualquier otra cosa que tengas en funcionamiento.
Hola Jammy, después de varios intentos fallidos de instalación, descubrí que se debían al límite de memoria del servidor y a la red. Te sugiero que uses un servidor con 4 GB de memoria y acceso normal a GitHub y Ruby.
Este error me molesta, ¿todavía lo ves? El contenedor de Docker ahora debería estar ejecutando 3.2.0.
Pero si tu /var/discourse no es un directorio git, se ha hecho algo diferente a las instrucciones. Impide una actualización y causa la discrepancia de la versión de ruby. Para mí:
/var/discourse# git status
On branch main
Your branch is up to date with 'origin/main'.
También vemos un directorio .git:
# ls -a /var/discourse/
. .github README.md cids discourse-setup launcher scripts tests
.. .gitignore bin containers image rebuild.log shared
.git LICENSE c discourse-doctor index.html samples templates
Editar: pero es cierto, si estás en un sistema operativo demasiado antiguo, tienes trabajo que hacer, para instalar discourse en un sistema operativo nuevo y recuperar tu copia de seguridad, y también para hacer todas las cosas adicionales que puedan ser necesarias para tu situación específica.
Si tu servidor está haciendo más cosas que solo ejecutar discourse, eso es una complicación adicional. Puede que necesites experiencia local.
Gracias chicos por la ayuda, probaré sus sugerencias una por una para solucionar el problema. Si hay alguna opinión (buena o mala), la publicaré de nuevo en el foro. ¡Gracias de nuevo!
Instalé correctamente la nueva versión de Discourse. Seguí las instrucciones del documento anterior y me funcionó. Pero ahora tengo problemas para restaurar desde la copia de seguridad.
Intenté Restaurar una copia de seguridad desde la línea de comandos pero obtuve lo siguiente:
root@my_server:/var/www/discourse# discourse restore my_server-2023-06-20-033008-v20210922064213.tar.gz
Starting restore: my_server-2023-06-20-033008-v20210922064213.tar.gz
[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /var/www/discourse/tmp/restores/default/2023-06-29-113408 exists...
Copying archive to tmp directory...
Unzipping archive, this may take a while...
EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
/var/www/discourse/lib/discourse.rb:171:in `execute_command'
/var/www/discourse/lib/discourse.rb:137:in `exec'
/var/www/discourse/lib/discourse.rb:33:in `execute_command'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:78:in `decompress_archive'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:23:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/thor-1.2.2/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Trying to rollback...
There was no need to rollback
Cleaning stuff up...
Removing tmp '/var/www/discourse/tmp/restores/default/2023-06-29-113408' directory...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.