Notre conteneur Discourse doit-il être reconstruit ?

Je viens de rencontrer cette erreur en essayant de mettre à niveau un forum depuis l’interface web en utilisant le plugin docker_manager. Le conteneur doit-il être reconstruit ?

********************************************************
*** Veuillez patienter, les étapes suivantes peuvent prendre un certain temps ***
********************************************************
Redémarrage d'Unicorn pour libérer de la mémoire
Redémarrage d'Unicorn pid : 591637
En attente du rechargement d'Unicorn.
En attente du rechargement d'Unicorn..
En attente du rechargement d'Unicorn...
En attente du rechargement d'Unicorn....
En attente du rechargement d'Unicorn.....
En attente du rechargement d'Unicorn......
En attente du rechargement d'Unicorn.......
En attente du rechargement d'Unicorn........
En attente du rechargement d'Unicorn.........
En attente du rechargement d'Unicorn..........
En attente du rechargement d'Unicorn...........
En attente du rechargement d'Unicorn............
En attente du rechargement d'Unicorn.............
Utilisation de rails_multisite 5.0.0
Utilisation de raindrops 0.20.1
Utilisation de rbtrace 0.4.14
Utilisation de rchardet 1.8.0
Utilisation de redis-namespace 1.11.0
Utilisation de rexml 3.2.6
Utilisation de rinku 2.0.6
Utilisation de rotp 6.2.2
Utilisation de rqrcode_core 1.2.0
Utilisation de rqrcode 2.2.0
Utilisation de rss 0.3.0
Utilisation de rtlcss 0.2.1
Utilisation de ruby-readability 0.7.0
Utilisation de rubyzip 2.3.2
Utilisation de sanitize 6.0.2
Utilisation de sshkey 3.0.0
Utilisation de stackprof 0.2.25
Utilisation de tzinfo-data 1.2023.3
Utilisation de uglifier 4.2.0
Utilisation de unicorn 6.1.0
Utilisation de web-push 3.0.0
Bundlage terminé ! 136 dépendances du Gemfile, 172 gems maintenant installées.
Les gems des groupes « development » et « test » n'ont pas été installées.
Les gems bundled sont installées dans `./vendor/bundle`
$ yarn install
yarn install v1.22.19
[1/5] Validation de package.json...
[2/5] Résolution des packages...
success Déjà à jour.
$ 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] Résolution des packages...
warning Le champ de résolution « unset-value@2.0.1 » est incompatible avec la version demandée « unset-value@^1.0.0 »
success Déjà à jour.
$ patch-package
patch-package 8.0.0
Application des correctifs...
@ember/jquery@2.0.0 ✔
ember-source@3.28.12 ✔
virtual-dom@2.1.1 ✔
Terminé en 1,86 s.
Terminé en 2,61 s.
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
discourse-activity-pub est déjà à la dernière version compatible
discourse-affiliate est déjà à la dernière version compatible
discourse-ai est déjà à la dernière version compatible
discourse-akismet est déjà à la dernière version compatible
discourse-apple-auth est déjà à la dernière version compatible
discourse-assign est déjà à la dernière version compatible
discourse-automation est déjà à la dernière version compatible
discourse-cakeday est déjà à la dernière version compatible
discourse-calendar est déjà à la dernière version compatible
discourse-chatbot est déjà à la dernière version compatible
discourse-data-explorer est déjà à la dernière version compatible
discourse-docs est déjà à la dernière version compatible
discourse-footnote est déjà à la dernière version compatible
discourse-gamification est déjà à la dernière version compatible
discourse-github est déjà à la dernière version compatible
discourse-linkedin-auth est déjà à la dernière version compatible
discourse-login-with-amazon est déjà à la dernière version compatible
discourse-math est déjà à la dernière version compatible
discourse-microsoft-auth est déjà à la dernière version compatible
discourse-patreon est déjà à la dernière version compatible
discourse-reactions est déjà à la dernière version compatible
discourse-rss-polling est déjà à la dernière version compatible
discourse-shared-edits est déjà à la dernière version compatible
discourse-solved est déjà à la dernière version compatible
discourse-spoiler-alert est déjà à la dernière version compatible
discourse-subscriptions est déjà à la dernière version compatible
discourse-templates est déjà à la dernière version compatible
discourse-user-notes est déjà à la dernière version compatible
discourse-voting est déjà à la dernière version compatible
discourse-whos-online est déjà à la dernière version compatible
discourse-yearly-review est déjà à la dernière version compatible
docker_manager est déjà à la dernière version compatible
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
Le nom du plugin est « discourse-topic-voting », mais le répertoire du plugin est nommé « discourse-voting »

--------------------------------------------------------------------------------
1 migration a échoué !

Échec de la migration par défaut
<StandardError:"Une erreur s'est produite, cette migration et toutes les suivantes ont été annulées :\n\nERREUR : la transaction en cours est annulée, les commandes sont ignorées jusqu'à la fin du bloc de transaction\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'

Le migrateur multisite s'exécute avec 1 thread

Migration du site par défaut
== 20230820010101 EnableEmbeddingExtension : migration en cours =========================
-- enable_extension(:embedding)
Docker Manager : ÉCHEC DE LA MISE À NIVEAU
<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>'
Démarrage de 14 processus Unicorn qui avaient été arrêtés initialement

Oui, je vois que vous utilisez Chatbot.

Omettez-le ou lisez attentivement cet article :

https://meta.discourse.org/t/discourse-chatbot-now-smarter-than-chatgpt/256652/382?u=merefield

Merci de votre patience avec ce changement, il était important de faire passer Chatbot au niveau supérieur :rocket:

Pouvons-nous exécuter les commandes dans la section after_code sans reconstruire et redémarrer le conteneur après ?

Je ne pense pas que le simple redémarrage du conteneur exécutera cette section.

Cependant, cela peut-il être exécuté manuellement ?

Je ne pense pas que cela fonctionnera, car le conteneur doit se reconstruire, même avec la mise à niveau en ligne, donc tous vos ajouts manuels disparaîtraient.

Si vous souhaitez continuer à utiliser le chatbot, je vous suggère de prendre le taureau par les cornes et d’ajouter les lignes de script supplémentaires à app.yml.