Al actualizar usando el actualizador de la interfaz de usuario en la sección de administración, siempre falla. Ha fallado desde que instalé Discourse hace más de un año. Puedo conectarme fácilmente a mi servidor por SSH y actualizar manualmente, pero es frustrante tener una función que no se comporta correctamente.
Dado que Discourse se ejecuta con Docker, y no tengo un conocimiento profundo de él, me gustaría saber si alguien más tiene problemas como este y cómo puedo solucionarlo.
En resumen: el actualizador de la interfaz de usuario siempre falla, la línea de comandos funciona a la primera y me gustaría arreglarlo para no tener que conectarme por SSH al servidor (con tanta frecuencia).
Me doy cuenta, después de investigar un poco, de que podría ser que esté usando la cantidad mínima de RAM recomendada, pero esta es para una instalación privada con menos de 50 usuarios, así que realmente no necesito superar el mínimo para mi caso de uso.
Solía poder hacer una actualización con 2G de RAM + 2G de intercambio, pero eso fue, creo, antes de Ember, que es muy exigente. Si tienes espacio en disco para aumentar el intercambio a 4G, eso podría funcionar. O, migra temporalmente y con cuidado a una instancia con más RAM, haz la actualización y vuelve a migrar.
Hagas lo que hagas, haz una copia de seguridad y descárgala primero.
Solía tener 2 GB de RAM y 40 GB de disco, confiando en .\discourse-setup para configurar el intercambio, las actualizaciones de la interfaz de usuario web eran lentas
En el mercado de EE. UU., tanto Contabo como IONOS permiten el puerto de entrada 25, lo cual es fundamental para las configuraciones de mail-receiver, por lo que no hay limitaciones funcionales allí.
La diferencia real radica en la fiabilidad y la reputación del soporte:
Contabo (Trustpilot 4.2/5, ~6.700 reseñas) ofrece precios agresivos y altas especificaciones, pero los usuarios de EE. UU. a menudo informan de alta latencia, respuesta de soporte más lenta e inestabilidad del rendimiento, especialmente bajo carga. Los centros de datos de Contabo en EE. UU. existen, pero no siempre son tan receptivos como se espera.
IONOS (Trustpilot 4.5/5, ~31.000 reseñas) funciona mejor en EE. UU. de lo que muchos suponen. Tiene una reputación de soporte más sólida e infraestructura más fiable, con menos reseñas de 1 estrella (~10% frente al 16% de Contabo). Los usuarios informan consistentemente de mejor tiempo de actividad, soporte en vivo y gestión de cuentas en comparación con Contabo.
Conclusión (EE. UU.):
Si te basas en EE. UU. y necesitas estabilidad, soporte rápido y bajo riesgo para cargas de trabajo de producción, IONOS es la opción más segura. Contabo aún podría considerarse para entornos de desarrollo/pruebas o implementaciones sensibles al costo, pero espera contrapartidas en latencia y calidad de soporte.
El mío también empezó a hacerlo, funciona perfectamente durante más de 4 años y ahora falla. Aunque a veces dice que falla, pero cuando actualizo todo está al día y no hay nada que actualizar de nuevo. Pero casi siempre termina con
ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL Comando eliminado con SIGKILL (terminación forzada): ember build -prod /var/www/discourse/script/assemble_ember_build.rb:103:in `system': Comando falló con salida 1: pnpm (RuntimeError) from /var/www/discourse/script/assemble_ember_build.rb:103:in `<main>' Docker Manager: FAILED TO UPGRADE
Eso era lo que me preguntaba: si estaba conectado a un problema con el código en sí y no tanto con el hardware de mi servidor.
Supongo que mi siguiente posibilidad es simplemente escribir mi propio plugin con un script para actualizarme manualmente.
Me alegro de que otros tengan el mismo problema, así que no soy solo yo (sé que apesta). Quizás alguien que desarrolle activamente con Discourse pueda investigarlo. También desearía que hubiera mejor información de depuración, más allá de que simplemente “falla”.
No soy desarrollador ni experto en servidores y todo eso. Elegí Digital Ocean, simplemente porque era el que se mencionaba en las instrucciones oficiales de instalación, y porque he visto ese nombre mencionado una y otra vez a lo largo de los años.
En este momento estoy en el segundo plan más bajo, que cuesta $6 al mes por un servidor que parece ser mucho “más lento” que los que ofrecen Contabo o IONOS. Dado que el mínimo para un buen rendimiento de Discourse es de al menos 2 GB de RAM, tendría que actualizar al plan de $12. Por los $4.95 al mes de Contabo (enlace), obtendría 8 GB… es una diferencia “pequeña” tanto en precio como en RAM, sin mencionar el espacio en disco, etc.
Entonces, preguntándoles a ustedes y a otros usuarios con experiencia, ¿tiene sentido que migre mi Discourse a Contabo, por ejemplo, en lugar de quedarme con Digital Ocean? Aunque todavía estoy construyendo toda la comunidad y todo eso, hasta ahora DO ha estado bien, aparte del problema de actualizar Discourse en la web, incluso con un archivo de intercambio de 4 GB (porque mi espacio en disco es de solo 25 GB), pero no quiero migrar todo para luego empezar a notar otros problemas.
Encontré esta página, pero no estoy seguro de cuán confiables son realmente estas pruebas y si son suficientes para que me cambie.
¡Cualquier comentario sería muy apreciado!
¡Gracias!
********************************************************
*** Por favor, sea paciente, los próximos pasos pueden tardar un tiempo ***
********************************************************
Cycling Unicorn, para liberar memoria
Reiniciando unicorn pid: 1580
Esperando a que Unicorn se recargue.
Esperando a que Unicorn se recargue..
Esperando a que Unicorn se recargue...
Esperando a que Unicorn se recargue....
Esperando a que Unicorn se recargue.....
Esperando a que Unicorn se recargue......
Esperando a que Unicorn se recargue.......
Esperando a que Unicorn se recargue........
Esperando a que Unicorn se recargue.........
Esperando a que Unicorn se recargue..........
Esperando a que Unicorn se recargue...........
Esperando a que Unicorn se recargue............
Esperando a que Unicorn se recargue.............
Esperando a que Unicorn se recargue..............
Deteniendo 1 trabajador(es) de Unicorn, para liberar memoria
Deteniendo la cola de trabajos para recuperar memoria, el pid maestro es 1585
$ cd /var/www/discourse && git fetch --tags --prune-tags --prune --force
$ cd /var/www/discourse && git reset --hard HEAD@{upstream}
HEAD está ahora en 20ff23ed0 DEV: eliminar traducciones redundantes para el botón de nuevo tema deshabilitado (#33929)
$ bundle install --retry 3 --jobs 4
Bundle completo! 160 dependencias de Gemfile, 207 gems instalados ahora.
Los gems en los grupos 'test' y 'development' no fueron instalados.
Los gems empaquetados se instalan en './vendor/bundle'
3 gems instalados de los que dependes directamente están buscando financiación.
Ejecuta `bundle fund` para más detalles
$ if [ -f yarn.lock ]; then yarn install; else CI=1 pnpm install; fi
Ámbito: todos los 16 proyectos del espacio de trabajo
El archivo lock está actualizado, el paso de resolución se omite
Ya está actualizado
Listo en 2.9s usando pnpm v9.15.9
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
discourse-custom-wizard ya está en la última versión compatible
docker_manager ya está en la última versión compatible
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
El migrador multisite se está ejecutando usando 1 hilos
Migrando default
Sembrando default
*** Empaquetando activos. Esto llevará un tiempo ***
$ bundle exec rake themes:update assets:precompile
Actualizando temas con concurrencia: 10
[db:default] 'Air Theme' - comprobando...
[db:default] 'Air Theme' - actualizado
[db:default] 'Modern Category + Group Boxes' - comprobando...
[db:default] 'Modern Category + Group Boxes' - actualizado
[db:default] 'Clickable Topic' - comprobando...
[db:default] 'Clickable Topic' - actualizado
[db:default] 'Search Banner' - comprobando...
El límite de tamaño de montón de Node.js es inferior a 2048 MB. Estableciendo --max-old-space-size=2048 y CHEAP_SOURCE_MAPS=1
La compilación existente no es reutilizable.
- Existente: {"ember_env"=>"production", "core_tree_hash"=>"cd74e4ac33647244c041061633d6ca67f9166e5c"}
- Actual: {"ember_env"=>"production", "core_tree_hash"=>"7ac67590cc51e22690a2711b593892cd1d266781"}
Ejecutando compilación completa del núcleo...
Compilando
Entorno: production
La configuración 'staticAddonTrees' tendrá el valor predeterminado true en la próxima versión de Embroider y no se podrá desactivar. Para prepararse para esto, debería establecer 'staticAddonTrees: true' en su configuración de Embroider.
La configuración 'staticAddonTestSupportTrees' tendrá el valor predeterminado true en la próxima versión de Embroider y no se podrá desactivar. Para prepararse para esto, debería establecer 'staticAddonTestSupportTrees: true' en su configuración de Embroider.
compilando...
...[ConfigLoader]
...[Babel: @embroider/macros > applyPatches]
...[Babel: @ember/legacy-built-in-components > applyPatches]
...[Babel: ember-source > applyPatches]
[BABEL] Nota: El generador de código ha desoptimizado el estilo de /var/www/discourse/app/assets/javascripts/discourse/ember/ember-template-compiler.js ya que excede el máximo de 500KB.
[BABEL] Nota: El generador de código ha desoptimizado el estilo de /var/www/discourse/app/assets/javascripts/discourse/ember/ember.js ya que excede el máximo de 500KB.
...[Babel: @glimmer/component > applyPatches]
...[Babel: @ember/test-waiters > applyPatches]
...[Babel: ember-this-fallback > applyPatches]
...[Babel: ember-cache-primitive-polyfill > applyPatches]
...[Babel: select-kit > applyPatches]
...[@embroider/compat/app]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
...[@embroider/webpack]
undefined
ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL El comando fue terminado con SIGKILL (Terminación forzada): ember build -prod
/var/www/discourse/script/assemble_ember_build.rb:103:in `system': Comando fallido con salida 1: pnpm (RuntimeError)
from /var/www/discourse/script/assemble_ember_build.rb:103:in `<main>'
Docker Manager: FALLÓ AL ACTUALIZAR
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:211:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:112:in `upgrade'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:19:in `block in <main>'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `fork'
/var/www/discourse/plugins/docker_manager/scripts/docker_manager_upgrade.rb:6:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/commands/runner/runner_command.rb:44:in `load'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/commands/runner/runner_command.rb:44:in `block in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.2/lib/active_support/execution_wrapper.rb:91:in `wrap'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/commands/runner/runner_command.rb:70:in `conditional_executor'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/command.rb:28:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/command/base.rb:178:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/thor-1.4.0/lib/thor.rb:538:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/command/base.rb:73:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/command.rb:65:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/command.rb:143:in `with_argv'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/command.rb:63:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/railties-8.0.2/lib/rails/commands.rb:18:in `<main>'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `require'
/usr/local/lib/ruby/3.3.0/bundled_gems.rb:69:in `block (2 levels) in replace_require'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/bootsnap-1.18.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require'
bin/rails:18:in `<main>'
Iniciando 1 trabajador(es) de Unicorn que se detuvieron inicialmente