У меня возникла та же ошибка, что и в этом сообщении, при стандартной установке во время обновления через браузер. Ошибка произошла во время операций plugin:pull_compatible_all и multisite:migrate, а не при предварительной компиляции ассетов.
Ошибка:
SyntaxError: /var/www/discourse/lib/file_store/base_store.rb:96: syntax error, unexpected ','
download(*, **, print_deprecation: false)
Полный лог обновления, скопированный из интерфейса в браузере:
********************************************************
*** Пожалуйста, подождите, следующие шаги могут занять время ***
********************************************************
Перезапуск Unicorn для освобождения памяти
Перезапуск unicorn pid: 559
Ожидание перезагрузки Unicorn.
Ожидание перезагрузки Unicorn..
Ожидание перезагрузки Unicorn...
Ожидание перезагрузки Unicorn....
Ожидание перезагрузки Unicorn.....
Ожидание перезагрузки Unicorn......
Ожидание перезагрузки Unicorn.......
Ожидание перезагрузки Unicorn........
Остановка 1 воркера Unicorn для освобождения памяти
Остановка очереди задач для высвобождения памяти, мастер pid: 15009
$ cd /var/www/discourse && git fetch --tags --force && git reset --hard HEAD@{upstream}
Используется openssl-signature_algorithm 1.2.1
Используется aws-sigv4 1.5.0
Используется faraday 2.7.2
Используется image_optim 0.31.2
Используется request_store 1.5.1
Используется logstash-logger 0.26.1
Используется message_bus 4.3.1
Используется mini_racer 0.6.3
Используется sidekiq 6.5.8
Используется mini_suffix 0.3.3
Используется oauth-tty 1.0.5
Используется snaky_hash 2.0.1
Используется omniauth 1.9.2
Используется pry 0.14.2
Используется puma 6.0.2
Используется rack-mini-profiler 3.0.0
Используется rack-protection 3.0.5
Используется rbtrace 0.4.14
Используется redis-namespace 1.9.0
Используется rqrcode 2.1.2
Используется rss 0.2.9
Используется sassc 2.0.1
Используется sprockets 3.7.2
Используется uglifier 4.2.0
Используется unf 0.1.4
Используется unicorn 6.1.0
Используется web-push 3.0.0
Используется loofah 2.19.1
Используется net-imap 0.3.1
Используется net-pop 0.1.2
Используется net-smtp 0.3.3
Используется cose 1.3.0
Используется css_parser 1.13.0
Используется ruby-readability 0.7.0
Используется sanitize 6.0.0
Используется ecma-re-validator 0.4.0
Используется activesupport 7.0.4.3
Используется rails-html-sanitizer 1.5.0
Используется globalid 1.0.1
Используется activemodel 7.0.4.3
Используется aws-sdk-core 3.130.2
Используется faraday-retry 2.0.0
Используется json_schemer 0.2.23
Используется mini_scheduler 0.15.0
Используется oauth 1.1.0
Используется oauth2 1.4.11
Используется pry-byebug 3.10.1
Используется pry-rails 0.3.9
Используется rails-dom-testing 2.0.3
Используется actionview 7.0.4.3
Используется activejob 7.0.4.3
Используется active_model_serializers 0.8.4
Используется activerecord 7.0.4.3
Используется aws-sdk-kms 1.56.0
Используется aws-sdk-sns 1.53.0
Используется omniauth-oauth2 1.7.3
Используется omniauth-oauth 1.2.0
Используется actionpack 7.0.4.3
Используется actionview_precompiler 0.2.3
Используется aws-sdk-s3 1.114.0
Используется 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
Используется railties 7.0.4.3
Используется sprockets-rails 3.4.2
Используется mail 2.8.0.edge из https://github.com/discourse/mail.git (at main@5b700fc)
Используется lograge 0.12.0
Используется rails_failover 0.8.1
Используется rails_multisite 4.0.1
Используется sassc-rails 2.1.2
Используется actionmailer 7.0.4.3
Установка uri 0.12.2
Используется net-http 0.3.2
Завершено! 135 зависимостей из Gemfile, сейчас установлено 171 gem.
Gems из групп 'test' и 'development' не были установлены.
Установленные gems находятся в `./vendor/bundle`
$ yarn install --production
yarn install v1.22.19
[1/5] Проверка package.json...
[2/5] Разрешение пакетов...
успех Уже актуально.
$ yarn --cwd app/assets/javascripts/discourse $(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] Связывание зависимостей...
[4/4] Сборка свежих пакетов...
успех Файл блокировки сохранён.
Готово за 8.84с.
Готово за 9.31с.
$ LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all
rake aborted!
SyntaxError: /var/www/discourse/lib/file_store/base_store.rb:96: syntax error, unexpected ','
download(*, **, print_deprecation: false)
^
/var/www/discourse/lib/file_store/base_store.rb:102: syntax error, unexpected ','
download(*, **, print_deprecation: false)
^
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.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.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/file_store/local_store.rb:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.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.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/tasks/posts.rake:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `each'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/application.rb:506:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:464:in `load_tasks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `method_missing'
/var/www/discourse/Rakefile:9:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `<main>'
(См. полный трассировку, запустив задачу с флагом --trace)
Не удалось проверить совместимые версии плагинов
$ SKIP_POST_DEPLOYMENT_MIGRATIONS=1 bundle exec rake multisite:migrate
rake aborted!
SyntaxError: /var/www/discourse/lib/file_store/base_store.rb:96: syntax error, unexpected ','
download(*, **, print_deprecation: false)
^
/var/www/discourse/lib/file_store/base_store.rb:102: syntax error, unexpected ','
download(*, **, print_deprecation: false)
^
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.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.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/file_store/local_store.rb:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/bootsnap-1.15.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.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/zeitwerk-2.6.6/lib/zeitwerk/kernel.rb:38:in `require'
/var/www/discourse/lib/tasks/posts.rake:3:in `<main>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `block in run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `each'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:661:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/application.rb:506:in `run_tasks_blocks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/engine.rb:464:in `load_tasks'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `public_send'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/railties-7.0.4.3/lib/rails/railtie.rb:226:in `method_missing'
/var/www/discourse/Rakefile:9:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/gems/rake-13.0.6/exe/rake:27:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `load'
/var/www/discourse/vendor/bundle/ruby/3.1.0/bin/bundle:25:in `<main>'
(См. полный трассировку, запустив задачу с флагом --trace)
Docker Manager: НЕ УДАЛОСЬ ОБНОВИТЬ
#<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: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.15.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.15.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require'
bin/rails:18:in `<main>'
Запуск 1 остановленного ранее воркера Unicorn
Запуск обновления из консоли (git pull && ./launcher rebuild app, как указано здесь) вызвал другую ошибку, но я не уверен, какое сообщение об ошибке здесь релевантно:
I, [2023-07-04T08:08:49.261121 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile'
- Сборка
- Сборка
- сборка...
- очистка
- очистка
Ошибка сборки (broccoli-persistent-filter:Babel > [Babel: @ember/test-helpers]) в @ember/test-helpers/-internal/build-registry.js
[BABEL]: --- ЗАГЛУШКА ---
Эта версия @babel/plugin-proposal-private-property-in-object не предназначена для импорта. Что-то импортирует
@babel/plugin-proposal-private-property-in-object без объявления его в зависимостях (или devDependencies) в файле package.json.
Добавьте "@babel/plugin-proposal-private-property-in-object" в ваши devDependencies, чтобы обойти эту ошибку. Это заставит это сообщение исчезнуть.
(Во время обработки: /var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)Ошибка: [BABEL]: --- ЗАГЛУШКА ---
Эта версия @babel/plugin-proposal-private-property-in-object не предназначена для импорта. Что-то импортирует
@babel/plugin-proposal-private-property-in-object без объявления его в зависимостях (или devDependencies) в файле package.json.
Добавьте "@babel/plugin-proposal-private-property-in-object" в ваши devDependencies, чтобы обойти эту ошибку. Это заставит это сообщение исчезнуть.
(Во время обработки: /var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js)
at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/node_modules/@babel/plugin-proposal-private-property-in-object/lib/index.js:28:7)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/available-plugins.js:62:46)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/filter-items.js:11:25)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:110:18)
at Object.<anonymous> (/var/www/discourse/app/assets/javascripts/node_modules/@babel/preset-env/lib/index.js:16:20)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:110:18)
Стек ошибок и отчет: /tmp/error.dump.5abe6326cd5a415063a7ad1c85649486.log
ошибка Команда завершилась с кодом выхода 1.
I, [2023-07-04T08:09:05.088181 #1] INFO -- : Проверка 'Video Upload' для 'default'... актуально
yarn run v1.22.19
$ /var/www/discourse/app/assets/javascripts/node_modules/.bin/ember build -prod
ПРЕДУПРЕЖДЕНИЕ: Node v18.16.1 не протестирован с Ember CLI на вашей платформе. Мы рекомендуем использовать самую свежую версию «Active LTS» Node.js. См. подробности по адресу https://git.io/v7S5n.
Окружение: production
очистка...
информация Посетите https://yarnpkg.com/en/docs/cli/run для документации по этой команде.
I, [2023-07-04T08:09:05.089002 #1] INFO -- : Завершение асинхронных процессов
I, [2023-07-04T08:09:05.089274 #1] INFO -- : Отправка INT в HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 42
103:signal-handler (1688458145) Получен SIGTERM, планирование завершения...
I, [2023-07-04T08:09:05.089522 #1] INFO -- : Отправка TERM в exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 103
2023-07-04 08:09:05.089 UTC [42] LOG: получен запрос на быстрое завершение
103:M 04 Jul 2023 08:09:05.183 # Пользователь запросил завершение...
103:M 04 Jul 2023 08:09:05.183 * Сохранение финального снапшота RDB перед выходом.
2023-07-04 08:09:05.186 UTC [42] LOG: прерывание любых активных транзакций
2023-07-04 08:09:05.190 UTC [42] LOG: фоновый воркер "logical replication launcher" (PID 51) завершился с кодом выхода 1
2023-07-04 08:09:05.190 UTC [46] LOG: завершение работы
103:M 04 Jul 2023 08:09:05.388 * БД сохранена на диск
103:M 04 Jul 2023 08:09:05.389 # Redis готов к выходу, пока...
2023-07-04 08:09:05.431 UTC [42] LOG: система баз данных завершена
НЕ УДАЛОСЬ
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake themes:update assets:precompile' завершилась с ошибкой, код возврата #<Process::Status: pid 2323 exit 1>
Место ошибки: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
выполнение не удалось с параметрами {"cd"=>"$home", "hook"=>"assets_precompile", "cmd"=>["su discourse -c 'bundle exec rake themes:update assets:precompile'"]}
загрузка не удалась с кодом выхода 1
** НЕ УДАЛОСЬ ЗАГРУЗИТЬСЯ ** пожалуйста, прокрутите вверх и поищите предыдущие сообщения об ошибках, их может быть больше одной.
./discourse-doctor может помочь в диагностике проблемы.
f1dc57af807a68bb877ce724ea4a3424c77d39250b8ee20cb022194938925ce8
Я откатился к коммиту, который был до git pull (cdc5f905a2f245171b9f53fb76f4ba947389fc6b), и снова выполнил сборку, но получил ту же ошибку.
Я попробовал ./discourse-doctor, и он также завершался ошибкой из-за той же ошибки Babel. Он сообщил, что установка использует неофициальные плагины, и предложил их отключить, но как это сделать без работающего приложения? Все плагины были установлены через интерфейс браузера, а не в app.yaml.
При перезапуске приложения в браузере появляется ошибка Oops - Error 500. При входе в приложение, в /var/www/discourse/log/production.log отображается та же ошибка синтаксиса, и версия Ruby действительно 3.1 (ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x86_64-linux]).
Форум сейчас неработоспособен. Как мне исправить версию Ruby? Или пересобрать приложение? Или откатиться к рабочей версии?
Мой app.yml без комментариев и с замазанными идентификаторами:
templates:
- "templates/postgres.template.yml"
- "templates/redis.template.yml"
- "templates/web.template.yml"
- "templates/web.ssl.template.yml"
- "templates/web.letsencrypt.ssl.template.yml"
- "templates/sshd.template.yml"
- "templates/web.ratelimited.template.yml"
expose:
- "80:80"
- "443:443"
- "2222:22"
params:
db_default_text_search_config: "pg_catalog.english"
db_shared_buffers: "128MB"
version: stable
env:
LANG: en_US.UTF-8
UNICORN_WORKERS: 2
DISCOURSE_DEVELOPER_EMAILS: 'redacted'
DISCOURSE_HOSTNAME: 'redacted'
DISCOURSE_SMTP_ADDRESS: "redacted"
DISCOURSE_SMTP_PORT: 25
DISCOURSE_SMTP_USER_NAME: "redacted"
DISCOURSE_SMTP_PASSWORD: "redacted"
DISCOURSE_SMTP_ENABLE_START_TLS: true
LETSENCRYPT_ACCOUNT_EMAIL: "redacted"
DISCOURSE_MAXMIND_LICENSE_KEY: "redacted"
DISCOURSE_REFRESH_MAXMIND_DB_DURING_PRECOMPILE_DAYS: 0
volumes:
- volume:
host: /var/discourse/shared/standalone
guest: /shared
- volume:
host: /var/discourse/shared/standalone/log/var-log
guest: /var/log
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- mkdir -p plugins
- git clone https://github.com/discourse/docker_manager.git
run:
- exec: echo "Начало пользовательских команд"
- exec: echo "Конец пользовательских команд"
- exec: awk -F\# '{print $1;}' ~/.ssh/authorized_keys | awk 'BEGIN { print "Авторизованные SSH-ключи для этого контейнера:"; } NF>=2 {print $NF;}'