¿Necesita reconstruirse nuestro contenedor de Discourse?

Acabo de recibir este error al intentar actualizar un foro desde la interfaz web usando el plugin docker_manager. ¿Es necesario reconstruir el contenedor?

********************************************************
*** Por favor, tenga paciencia, los siguientes pasos pueden tardar un rato ***
********************************************************
Reiniciando Unicorn para liberar memoria
Reiniciando unicorn pid: 591637
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.............
Usando rails_multisite 5.0.0
Usando raindrops 0.20.1
Usando rbtrace 0.4.14
Usando rchardet 1.8.0
Usando redis-namespace 1.11.0
Usando rexml 3.2.6
Usando rinku 2.0.6
Usando rotp 6.2.2
Usando rqrcode_core 1.2.0
Usando rqrcode 2.2.0
Usando rss 0.3.0
Usando rtlcss 0.2.1
Usando ruby-readability 0.7.0
Usando rubyzip 2.3.2
Usando sanitize 6.0.2
Usando sshkey 3.0.0
Usando stackprof 0.2.25
Usando tzinfo-data 1.2023.3
Usando uglifier 4.2.0
Usando unicorn 6.1.0
Usando web-push 3.0.0
¡Bundle completo! 136 dependencias de Gemfile, 172 gemas ahora instaladas.
Las gemas en los grupos 'development' y 'test' no se instalaron.
Las gemas empaquetadas están instaladas en `./vendor/bundle`
$ yarn install
yarn install v1.22.19
[1/5] Validando package.json...
[2/5] Resolviendo paquetes...
¡Éxito! Ya está actualizado.
$ yarn --cwd app/assets/javascripts $(node -e 'const argv = JSON.parse(process.env.npm_config_argv).original; const passthrough = [`--frozen-lockfile`, `-s`].filter(arg => argv.includes(arg)); console.log(passthrough.join(` `));')
yarn install v1.22.19
[1/4] Resolviendo paquetes...
advertencia El campo de resolución "unset-value@2.0.1" es incompatible con la versión solicitada "unset-value@^1.0.0"
¡Éxito! Ya está actualizado.
$ patch-package
patch-package 8.0.0
Aplicando parches...
@ember/jquery@2.0.0 ✔
ember-source@3.28.12 ✔
virtual-dom@2.1.1 ✔
¡Hecho en 1.86s.
¡Hecho en 2.61s.
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
discourse-activity-pub ya está en la última versión compatible
discourse-affiliate ya está en la última versión compatible
discourse-ai ya está en la última versión compatible
discourse-akismet ya está en la última versión compatible
discourse-apple-auth ya está en la última versión compatible
discourse-assign ya está en la última versión compatible
discourse-automation ya está en la última versión compatible
discourse-cakeday ya está en la última versión compatible
discourse-calendar ya está en la última versión compatible
discourse-chatbot ya está en la última versión compatible
discourse-data-explorer ya está en la última versión compatible
discourse-docs ya está en la última versión compatible
discourse-footnote ya está en la última versión compatible
discourse-gamification ya está en la última versión compatible
discourse-github ya está en la última versión compatible
discourse-linkedin-auth ya está en la última versión compatible
discourse-login-with-amazon ya está en la última versión compatible
discourse-math ya está en la última versión compatible
discourse-microsoft-auth ya está en la última versión compatible
discourse-patreon ya está en la última versión compatible
discourse-reactions ya está en la última versión compatible
discourse-rss-polling ya está en la última versión compatible
discourse-shared-edits ya está en la última versión compatible
discourse-solved ya está en la última versión compatible
discourse-spoiler-alert ya está en la última versión compatible
discourse-subscriptions ya está en la última versión compatible
discourse-templates ya está en la última versión compatible
discourse-user-notes ya está en la última versión compatible
discourse-voting ya está en la última versión compatible
discourse-whos-online ya está en la última versión compatible
discourse-yearly-review 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 nombre del plugin es 'discourse-topic-voting', pero el directorio del plugin se llama 'discourse-voting'

--------------------------------------------------------------------------------
¡1 migración falló!

No se pudo migrar el sitio predeterminado
<StandardError: "Ha ocurrido un error, esta y todas las migraciones posteriores se cancelaron:\n\nERROR: la transacción actual está abortada, los comandos se ignorarán hasta el final del bloque de transacción\n">
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.1.1/lib/patches/db/pg.rb:110:in `exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.1.1/lib/patches/db/pg.rb:110:in `async_exec'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:202:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `block in run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `block in with_lock'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:34:in `with_lock'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/active_record_postgres/connection.rb:38:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/mini_sql-1.5.0/lib/mini_sql/postgres/connection.rb:64:in `query_single'
/var/www/discourse/plugins/discourse-chatbot/db/migrate/20230820010101_enable_embedding_extension.rb:8:in `rescue in change'
/var/www/discourse/plugins/discourse-chatbot/db/migrate/20230820010101_enable_embedding_extension.rb:4:in `change'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:870:in `exec_migration'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `block in exec_migration'
/usr/local/lib/ruby/3.2.0/benchmark.rb:296:in `measure'
/var/www/discourse/lib/freedom_patches/schema_migration_details.rb:8:in `exec_migration'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:854:in `block (2 levels) in migrate'
/usr/local/lib/ruby/3.2.0/benchmark.rb:296:in `measure'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:853:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/connection_adapters/abstract/connection_pool.rb:215:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:852:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1046:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1360:in `block in execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/connection_adapters/abstract/transaction.rb:319:in `block in within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:25:in `block in synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activesupport-7.0.7/lib/active_support/concurrency/load_interlock_aware_monitor.rb:21:in `synchronize'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/connection_adapters/abstract/transaction.rb:317:in `within_new_transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/connection_adapters/abstract/database_statements.rb:316:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/transactions.rb:209:in `transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1411:in `ddl_transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1359:in `execute_migration_in_transaction'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1333:in `each'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1333:in `migrate_without_lock'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1282:in `block in migrate'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1432:in `block in with_advisory_lock'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/connection_adapters/abstract/connection_pool.rb:215:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1447:in `with_advisory_lock_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1428:in `with_advisory_lock'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1282:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1117:in `up'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/migration.rb:1092:in `migrate'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/activerecord-7.0.7/lib/active_record/tasks/database_tasks.rb:262:in `migrate'
/var/www/discourse/lib/tasks/db.rake:196:in `block (3 levels) in <main>'
/var/www/discourse/lib/tasks/db.rake:159:in `block (3 levels) in execute_concurrently'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-5.0.0/lib/rails_multisite/connection_management.rb:82:in `with_connection'
/var/www/discourse/lib/tasks/db.rake:157:in `block (2 levels) in execute_concurrently'

El migrador multisitio se está ejecutando usando 1 hilo

Migrando el sitio predeterminado
== 20230820010101 EnableEmbeddingExtension: migrando =========================
-- enable_extension(:embedding)
Docker Manager: FALLÓ LA ACTUALIZACIÓN
<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:209:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:108: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.2.0/gems/railties-7.0.7/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.7/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/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/railties-7.0.7/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.7/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/railties-7.0.7/lib/rails/commands.rb:18:in `<main>'
<internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
<internal:/usr/local/lib/ruby/site_ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:37:in `require'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
bin/rails:18:in `<main>'
Iniciando 14 trabajadores de Unicorn que se detuvieron inicialmente

Sí, veo que estás usando Chatbot.

Omítelo o lee esta publicación detenidamente:
https://meta.discourse.org/t/discourse-chatbot-now-smarter-than-chatgpt/256652/382?u=merefield

Gracias por tu paciencia con este cambio, era importante llevar Chatbot al siguiente nivel :rocket:

¿Podemos ejecutar los comandos en la sección after_code sin reconstruir y reiniciar el contenedor después?

No creo que simplemente reiniciar el contenedor ejecute esa sección.

¿Se puede ejecutar eso manualmente, sin embargo?

No creo que eso funcione, ya que el contenedor necesita reconstruirse, incluso con la actualización en línea, por lo que todas tus agradables adiciones manuales se borrarían.

Si quieres seguir usando el chatbot, te recomiendo que vayas a lo seguro y agregues las líneas de script adicionales a app.yml.