Я только что ответил на уведомление по электронной почте «обновление в один клик» о выпуске новых исправлений безопасности и ошибок до версии 3.0.3 с моей текущей версии 3.0.1.
Первоначальное обновление Docker Manager прошло успешно (согласно отчёту о ходе обновления на веб-странице обновления), но когда я впоследствии нажал «обновить всё», чтобы обновить оставшиеся компоненты Discourse, для которых была доступна новая версия, это завершилось ошибкой, в результате чего мой сайт стал недоступен.
Странно, что в следующем окне отчёта о ходе обновления снова упоминается Docker Manager, хотя он только что был обновлён отдельно — на этот раз сообщается, что «обновление не удалось» и возникло «RuntimeError».
Правильно ли я понимаю, что это произошло из-за устаревшей версии Ruby, установленной на моём сервере Digital Ocean (v3.1 вместо v3.2)? Если так, я бы ожидал, что о таких новых зависимостях будет упомянуто в примечаниях к обновлению (этого не было в предыдущем обновлении), или же установщик в один клик должен был обработать это более корректно.
Ниже приведено содержимое окна следующего отчёта о ходе обновления:
********************************************************
*** Пожалуйста, будьте терпеливы, следующие шаги могут занять некоторое время ***
********************************************************
Перезапуск Unicorn для освобождения памяти
Перезапуск unicorn pid: 575
Ожидание перезагрузки Unicorn.
Ожидание перезагрузки Unicorn..
Ожидание перезагрузки Unicorn...
Ожидание перезагрузки Unicorn....
Ожидание перезагрузки Unicorn.....
Ожидание перезагрузки Unicorn......
Ожидание перезагрузки Unicorn.......
Ожидание перезагрузки Unicorn........
Ожидание перезагрузки Unicorn.........
Используется net-protocol 0.2.1
Загрузка addressable 2.8.4
Установка addressable 2.8.4
Используется aws-sigv4 1.5.0
Используется openssl-signature_algorithm 1.3.0
Используется sprockets 3.7.2 из https://github.com/rails/sprockets (at 3.x@f4d3dae)
Используется request_store 1.5.1
Используется message_bus 4.3.2
Используется pry 0.14.2
Загрузка rack-mini-profiler 3.1.0
Установка rack-mini-profiler 3.1.0
Загрузка rack-protection 3.0.6
Установка rack-protection 3.0.6
Используется ecma-re-validator 0.4.0
Используется faraday 2.7.4
Используется image_optim 0.31.3
Используется logstash-logger 0.26.1
Используется mini_racer 0.6.3
Используется mini_suffix 0.3.3
Используется omniauth 1.9.2
Используется uglifier 4.2.0
Используется web-push 3.0.0
Используется sidekiq 6.5.8
Используется redis-namespace 1.10.0
Используется net-http 0.3.2
Используется oauth-tty 1.0.5
Используется snaky_hash 2.0.1
Используется activesupport 7.0.4.3
Загрузка sass-embedded 1.62.0 (x86_64-linux-gnu)
Установка sass-embedded 1.62.0 (x86_64-linux-gnu)
Используется rqrcode 2.1.2
Используется rss 0.2.9
Загрузка tzinfo-data 1.2023.3
Установка tzinfo-data 1.2023.3
Используется unf 0.1.4
Используется unicorn 6.1.0
Загрузка loofah 2.20.0
Установка loofah 2.20.0
Используется ruby-readability 0.7.0
Используется sanitize 6.0.1
Используется net-imap 0.3.4
Используется net-pop 0.1.2
Используется net-smtp 0.3.3
Используется css_parser 1.14.0
Используется aws-sdk-core 3.130.2
Используется cose 1.3.0
Используется pry-byebug 3.10.1
Используется pry-rails 0.3.9
Используется json_schemer 0.2.23
Используется faraday-retry 2.1.0
Используется oauth2 1.4.11
Используется rtlcss 0.2.0
Используется rails-dom-testing 2.0.3
Используется globalid 1.1.0
Используется activemodel 7.0.4.3
Используется mini_scheduler 0.15.0
Используется oauth 1.1.0
Используется dartsass-ruby 3.0.1
Используется rails-html-sanitizer 1.5.0
Загрузка mail 2.8.1
Установка mail 2.8.1
Используется aws-sdk-kms 1.56.0
Используется aws-sdk-sns 1.53.0
Используется actionview 7.0.4.3
Используется activejob 7.0.4.3
Используется active_model_serializers 0.8.4
Используется activerecord 7.0.4.3
Используется omniauth-oauth2 1.7.3
Используется omniauth-oauth 1.2.0
Используется aws-sdk-s3 1.114.0
Используется actionpack 7.0.4.3
Используется actionview_precompiler 0.2.3
Используется discourse-seed-fu 2.3.12
Используется omniauth-facebook 9.0.0
Используется omniauth-github 1.4.0
Используется omniauth-google-oauth2 0.8.2
Используется omniauth-twitter 1.4.0
Используется actionmailer 7.0.4.3
Используется railties 7.0.4.3
Используется sprockets-rails 3.4.2
Используется dartsass-sprockets 3.0.0
Используется lograge 0.12.0
Загрузка rails_failover 1.0.0
Установка rails_failover 1.0.0
Используется rails_multisite 4.0.1
Загрузка puma 6.2.2
Установка puma 6.2.2 с нативными расширениями
Используется bootsnap 1.16.0
Используется rbtrace 0.4.14
Bundle complete! 136 зависимостей Gemfile, сейчас установлено 174 gem-а.
Gem-ы из групп 'test' и 'development' не были установлены.
Собранные gem-ы установлены в `./vendor/bundle`
$ yarn install --production
yarn install v1.22.19
[1/5] Проверка package.json...
[2/5] Разрешение пакетов...
[3/5] Загрузка пакетов...
[4/5] Связывание зависимостей...
warning " > @mixer/parallel-prettier@2.0.3" имеет невыполненную peer-зависимость "prettier@^2.0.0".
warning "eslint-config-discourse > eslint-plugin-lodash@7.1.0" имеет невыполненную peer-зависимость "lodash@>=4".
[5/5] Сборка свежих пакетов...
$ yarn --cwd app/assets/javascripts $(node -e 'if(JSON.parse(process.env.npm_config_argv).original.includes(`--frozen-lockfile`)){console.log(`--frozen-lockfile`)}')
yarn install v1.22.19
[1/4] Разрешение пакетов...
[2/4] Загрузка пакетов...
[3/4] Связывание зависимостей...
warning " > babel-plugin-debug-macros@0.4.0-pre1" имеет невыполненную peer-зависимость "@babel/core@^7.0.0".
warning "workspace-aggregator-61483bea-5d74-44aa-a245-abffc0a6319e > discourse > @uppy/aws-s3@3.0.6" имеет неверную peer-зависимость "@uppy/core@^3.1.2".
warning "workspace-aggregator-61483bea-5d74-44aa-a245-abffc0a6319e > discourse > @uppy/aws-s3-multipart@3.1.3" имеет неверную peer-зависимость "@uppy/core@^3.1.2".
warning "workspace-aggregator-61483bea-5d74-44aa-a245-abffc0a6319e > discourse > @uppy/xhr-upload@3.1.1" имеет неверную peer-зависимость "@uppy/core@^3.1.2".
[4/4] Сборка свежих пакетов...
success Сохранён lockfile.
$ patch-package
patch-package 6.5.1
Применение патчей...
@ember/jquery@2.0.0 ✔
virtual-dom@2.1.1 ✔
Done in 23.96s.
Done in 40.79s.
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
Discourse требует Ruby 3.2 или выше
Не удалось проверить совместимые версии плагинов
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
Discourse требует Ruby 3.2 или выше
Docker Manager: НЕ УДАЛОСЬ ОБНОВИТЬ
#<RuntimeError: RuntimeError>
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:202:in `run'
/var/www/discourse/plugins/docker_manager/lib/docker_manager/upgrader.rb:101: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.1.0/gems/railties-7.0.4.3/lib/rails/commands/runner/runner_command.rb:43:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/commands/runner/runner_command.rb:43:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/thor-1.2.1/lib/thor/command.rb:27:in `run'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/thor-1.2.1/lib/thor/invocation.rb:127:in `invoke_command'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/thor-1.2.1/lib/thor.rb:392:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/command/base.rb:87:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/command.rb:48:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/commands.rb:18:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.16.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
bin/rails:18:in `<main>'
Запуск 1 остановленного ранее воркера Unicorn
Я выполню шаги для пересборки моего сайта через Putty, но сообщаю об этом на случай, если в установщике есть ошибка.
