Tengo una instalación de 2.5.0.beta4.
Iba a ser actualizada pero en el proceso se rompió y mi sitio ya no carga.
Tengo todos los archivos y la base de datos, etc. Fue a través de un docker en Ubuntu 16.
¿Cuáles son mis opciones para arreglar esto?
No tengo ni idea de shell, así que tendré que conseguir que alguien lo haga por mí, pero necesito saber, sin disparar a ciegas, qué debería buscar hacer.
Cualquier ayuda es apreciada.
¿Puede proporcionar más detalles, se está cargando el contenedor (docker ps)? ¿Algún mensaje de error/registro que pueda indicar el camino? ¿Se está autoalojando o en algún host de terceros?
Hola Mike, gracias por responder, esto es lo que obtengo.
Cuando ejecuto ./discourse-docto, obtengo este error:
+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e RAILS_ENV=production -e UNICORN_WORKERS=2 -e UNICORN_SIDEKIQS=1 -e RUBY_GLOBAL_METHOD_CACHE_SIZE=131072 -e
RUBY_GC_HEAP_GROWTH_MAX_SLOTS=40000 -e
RUBY_GC_HEAP_INIT_SLOTS=400000 -e
RUBY_GC_HEAP_OLDOBJECT_LIMIT_FACTOR=1.5 -e
DISCOURSE_DB_SOCKET=/var/run/postgresql -e
DISCOURSE_DB_HOST= -e
DISCOURSE_DB_PORT= -e
LETSENCRYPT_DIR=/shared/letsencrypt -e
DISCOURSE_FORCE_HTTPS=true -e
DISCOURSE_HOSTNAME=discuss.domain -e
DISCOURSE_DEVELOPER_EMAILS=info@domain -e
DISCOURSE_SMTP_ADDRESS=mail3.domain -e
DISCOURSE_SMTP_PORT=587 -e
DISCOURSE_SMTP_USER_NAME=xxx@domain -e
DISCOURSE_SMTP_PASSWORD=xxx -e
LETSENCRYPT_ACCOUNT_EMAIL=info@domain -h
Ubuntu-1804-bionic-64-minimal-app -e
DOCKER_HOST_IP=172.17.0.1 --name app -t -p 80:80 -p 443:443 -v /var/discourse/shared/standalone:/shared -v /var/discourse/shared/standalone/log/var-log:/var/log --mac-address 02:8d:5a:f6:a3:11 local_discourse/app /sbin/boot
Unable to find image 'local_discourse/app:latest' locally
docker: Error response from daemon: pull access denied for local_discourse/app, repository does not exist or may require 'docker login': denied: requested access to the resource is denied.
See 'docker run --help'.
Failed to restart the container.
Mismo error cuando intento ejecutar /launcher rebuild app
docker es la versión más reciente
También veo este error en el registro del doctor:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse & find /var/www/discourse ! -user discourse -exec chown discourse {} + failed with return #<Process::Status: pid 1929 exit 1>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"web", "cmd"=>["gem install bundler --conservative -v $(awk '/BUNDLED WITH/ { getline; gsub(/ /,\\\"\\\"); print $0 }' Gemfile.lock)", "find $home ! -user discourse -exec chown discourse {} \\+"]}
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.
f4d0b782e3d1c3deccb5e3d6c186a08ebbaaea22ed37d19a2ff07b7688c83926
¿Qué tipo de actualización estabas haciendo? Revisaría el archivo app.yml en busca de errores tipográficos y luego volvería a ejecutar una reconstrucción completa.
Tu versión de Docker es demasiado antigua, y eso está sucediendo porque tu Ubuntu es demasiado antigua. ¿Tienes una copia de seguridad? Simplemente inicia un nuevo VPS en Ubuntu 22 y restáuralo.
No tengo una copia de seguridad, solo una instantánea de la VPS cuando funcionaba por última vez, pero no se carga después de restaurarla.
Docker version 23.0.3, build 3e7cbfd
app.yml está bien, validado en https://www.yamllint.com
El error es sobre esta línea en el lanzador:
cidbootstrap=cids/\"$config\"_bootstrap.cid
local_discourse=local_discourse
image=\"discourse/base:2.0.20230409-0052\"
docker_path=`which docker.io 2\u003e /dev/null || which docker`
git_path=`which git`
local_discourse=local_discourse
¿Hay alguna forma de obtener datos o hacer una copia de seguridad en esta situación?
Los archivos de la base de datos deberían ser accesibles. En mi servidor de producción están en /var/discourse/shared/standalone/postgres_data, el tuyo podría estar en un lugar similar.
Sugiero hacer una copia de seguridad COMPLETA del sistema en otro servidor antes de continuar, especialmente de todos los directorios que están bajo un directorio ‘discourse’.
En ausencia de una copia de seguridad actual (suficiente), crearía un nuevo servidor utilizando una versión más reciente de Ubuntu (y por lo tanto de Docker) y luego copiaría todos los directorios bajo los árboles de discourse a él, incluyendo todos los archivos de postgres. (Aún no he tenido que hacer esto en un servidor de discourse, pero he administrado bases de datos de postgres durante 20 años y si los archivos de la base de datos están intactos, eso ayuda a recrear/reconstruir las cosas).
¿Ha pasado mucho tiempo desde que se actualizó este sistema? Si la respuesta a esa pregunta es ‘sí’, podría haber complicaciones al intentar copiar los archivos existentes bajo los directorios de discourse a un nuevo servidor, porque esa no es realmente la forma correcta de hacerlo; una copia de seguridad de discourse tiene mucho más que solo los archivos de la base de datos de postgresql. (Por eso intento hacer una copia de seguridad incluso antes de una pequeña actualización, aunque admito que no siempre lo hago).
Tu última copia de seguridad de discourse probablemente se encuentre en un directorio similar a este:
/var/discourse/shared/standalone/backups/default
Hola Mike, gracias por tus respuestas, lo aprecio mucho.
La actualización falló y en algún momento el SSL dejó de renovarse automáticamente, así que mientras intentaba hacer todo esto, terminé con este escenario.
Lo intento, estoy tratando de reconstruir la aplicación pero me encuentro con que no hay suficiente espacio, tengo 15 GB utilizados por Discourse por alguna razón.
Aparte de reconstruir, ¿hay alguna forma de iniciar Discourse como un comando de inicio?
Gracias de nuevo.
Probablemente tengas varias imágenes de contenedor acumuladas.
Ejecutar ‘docker images’ las listará. En mi sistema de producción, por ejemplo, lista 7 imágenes de alrededor de 3.5 GB cada una, lo que suma bastante espacio; mi sistema sandbox muestra más de 20. Podrías eliminar algunas de esas imágenes para liberar espacio, o copiarlas a un servidor separado si tienes espacio disponible en ellos.
Supongo que ‘docker ps’ no muestra un contenedor en ejecución.
¿Has intentado iniciar un contenedor anterior para ver si eso pone en marcha el sitio? Luego puedes hacer una copia de seguridad.
Creo que Launcher debería funcionar para eso, en gran medida sirve como interfaz para comandos de docker, pero también puede realizar otras tareas necesarias para poner en marcha discourse.
Hola Mike, curiosamente solo hay 1 contenedor ahí. Logré liberar espacio limpiando los logs, etc. Pero no tuve suerte. Hay otro problema que no puedo encontrar. Simplemente seguiré tus otras instrucciones para ver si puedo ponerlo en marcha usando métodos manuales, por ejemplo, copiar archivos y la base de datos a una versión posterior.
Cuando ejecuto docker run, obtengo:
docker run discourse
No se puede encontrar la imagen 'discourse:latest' localmente
docker: Respuesta de error del demonio: acceso denegado a la extracción para discourse, el repositorio no existe o puede requerir 'docker login': denegado: se denegó el acceso al recurso.
¿Qué pasa si intentas con el lanzador?
./launcher start app
Da lo siguiente:
.....truncated
No se puede encontrar la imagen 'local_discourse/app:latest' localmente
/usr/bin/docker: Error de respuesta del demonio:
acceso denegado para descargar local_discourse/app,
el repositorio no existe o puede requerir 'docker login': denegado:
se deniega el acceso solicitado al recurso.
¿Qué obtienes de ‘docker images’?
Solo uno:
discourse/base 2.0.20230409-0052 08afe7103ce8
Puedo reproducir más o menos los mensajes de error que estás obteniendo jugando con una imagen más antigua, pero hasta ahora no he encontrado una forma de forzar la carga de esa imagen.
No estoy seguro de qué más puedo sugerir en este momento.
Hola Mike, tu solución anterior marcada como solución lo resolvió un poco. Copié todos los archivos a un nuevo VPS y funcionó después de algunos cambios.
Gracias a todos por la ayuda.
Me alegro de que hayas encontrado una solución, me complace haberte ayudado. Asegúrate de hacer copias de seguridad con regularidad. ![]()
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.