Всем привет!
Я пытался обновить форум Discourse, используя ссылку, размещённую в панели администратора, и получил эту ошибку. Весь форум исчез. Что мне теперь делать, чтобы сбросить обновление? Буду очень благодарен за помощь.
На самом деле это означает, что ваш форум обновляется, если вы не прервете обновление до его завершения.
Попробуйте посетить страницу вашего форума https://yoursite.com/latest.json. Если она возвращает какие-либо данные, подождите 10 минут и проверьте, решится ли проблема сама собой.
Спасибо за ответ. Я попробовал метод, который вы предложили, но получил ошибку 502 Bad Gateway от nginx.
Похоже, вам, возможно, придется выполнить ./launcher rebuild app
Я выполнил команду ./launcher rebuild app и получил следующие сообщения об ошибках:
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development' failed with return #<Process::Status: pid 340 exit 5>
Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test development'"]}
6e9e60bd6b6113cdcb001127fd2a24fe86f2a1658bf24500e5e2b720fd793510
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
./discourse-doctor may help diagnose the problem.
Я прокрутил вверх и нашёл возможные записи в логах об ошибках:
1)200:M 25 Jun 2023 16:00:16.252 # Failed listening on port 6379 (TCP), aborting.
2)[DEPRECATED] The `--deployment` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local deployment 'true'`, and stop using this flag
[DEPRECATED] The `--without` flag is deprecated because it relies on being remembered across bundler invocations, which bundler will no longer do in future versions. Instead please use `bundle config set --local without 'test development'`, and stop using this flag
3)Bundler::PathError: The path `/var/www/discourse/vendor/bundle/ruby/2.7.0/bundler/gems/sprockets-f4d3dae71ef2` does not exist.
4)Bundler::InstallError: sass-embedded-1.63.6-x86_64-linux requires rubygems version >= 3.3.22, which is incompatible with the current version, 3.2.18
Недавно кто-то другой столкнулся с похожей проблемой, если это поможет?
Спасибо большое за ответ, но, кажется, это не та же проблема, мой сервер находится в Германии. Я использую образ Docker для Discourse на своём сервере. Что мне делать, если команда ./launcher rebuild app не работает?
Выглядит похоже на
Сбой сборки из-за несовместимости Ruby-гемов
Спасибо за помощь! Да, это выглядит похоже, и я попробовал:
my server:/var/discourse**$ git pull
fatal: Не является репозиторием Git: ../.git/modules/discourse_docker
Нужно ли что-то сделать перед запуском git pull? Я выполнял это в директории /var/discourse на моём сервере.
Похоже, у вас нестандартная конфигурация — это стандартная установка?
Я прочитал документацию последнего программиста для меня, и там сказано, что поскольку многие веб-сервисы работают за nginx, а Discourse также требует хостинга за nginx. Стандартная установка не подходит для моей ситуации.
А вот как он описал это в документации и что сделал:
Discourse работает в контейнере Docker. Однако для него требуется особая конфигурация, не через docker-compose.yml или файл .conf.
Репозиторий discourse-project на GitHub, необходимый для настройки и сборки Docker-образа, можно найти здесь. Игнорируйте предоставленную ими программу “discourse-setup” — она здесь не сработает. Нам нужно настроить приложение самостоятельно.
git clone https://github.com/discourse/discourse_docker.git /var/discoursecd /var/discourse && cp samples/standalone.yml containers/app.ymlsudo nano)/var/discourse с помощью команды sudo ./launcher bootstrap app. Это займёт довольно много времениsudo ./launcher start app.Это хорошие заметки.
Команда git pull; ./launcher rebuild app должна сработать.
С какой версии вы обновляетесь?
Устарела ли версия ОС? (cat /etc/issue)
Заполнен ли диск? (df -h)
Спасибо за ваш ответ! Версия, с которой я обновляюсь, — 2.8.0.beta6, а последнее обновление было 28.09.2021.
После выполнения команды cat /etc/issue я получил:
Debian GNU/Linux 9 \n \l
Ниже приведена информация согласно ./discourse-doctor:
==================== ИНФОРМАЦИЯ О ПАМЯТИ ====================
RAM (МБ): 4050
total used free shared buff/cache available
Mem: 3955 427 1152 63 2375 3182
Swap: 0 0 0
==================== ПРОВЕРКА СВОБОДНОГО МЕСТА НА ДИСКЕ ====================
---------- Свободное место на диске ОС ----------
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 63G 27G 34G 45% /
==================== ИНФОРМАЦИЯ О ДИСКЕ ====================
Disk /dev/sda: 64 GiB, 68719476736 bytes, 134217728 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xc0b6220c
Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 134217727 134215680 64G 83 Linux
Вы можете добавить swap.
Также см. обновление PostgreSQL 13.
Вы выполняли пересборку более одного раза?
См. также Debian | endoflife.date
Вам действительно нужно перенести всё на новую виртуальную машину с поддерживаемой операционной системой. Поэтому вам также потребуется обновить всё остальное, что у вас запущено.
Привет, Jammy. После нескольких неудачных попыток установки я выяснил, что проблема связана с ограничением памяти сервера и сетью. Я рекомендую использовать сервер с 4 ГБ оперативной памяти и обеспечить нормальный доступ к GitHub и Ruby.
Эта ошибка меня беспокоит — вы всё ещё её видите? Docker-контейнер теперь должен запускаться с версией 3.2.0.
Однако, если /var/discourse не является git-репозиторием, значит, что-то было сделано иначе, чем указано в инструкциях. Это препятствует обновлению и вызывает несовпадение версий Ruby. У меня:
/var/discourse# git status
На ветке main
Ваша ветка актуальна относительно 'origin/main'.
Также мы видим директорию .git:
# ls -a /var/discourse/
. .github README.md cids discourse-setup launcher scripts tests
.. .gitignore bin containers image rebuild.log shared
.git LICENSE c discourse-doctor index.html samples templates
Редактирование: но это правда, если у вас слишком старая ОС, вам предстоит проделать определённую работу: установить Discourse на новую ОС, восстановить резервную копию, а также выполнить все дополнительные действия, которые могут потребоваться в вашей конкретной ситуации.
Если ваш сервер выполняет задачи помимо запуска Discourse, это добавляет ещё одну сложность. Возможно, вам потребуется местная экспертиза.
У меня аналогичная проблема с Ruby Gems и т.д.
Это была чистая установка на новый сервер.
Спасибо всем за помощь! Я попробую ваши предложения по очереди, чтобы решить проблему. Если будут какие-либо отзывы (хорошие или плохие), я опубликую их обратно на форуме. Еще раз спасибо!
Я успешно установил новую версию Discourse. Я просто следовал инструкциям в документе выше, и у меня всё получилось. Но теперь у меня возникли проблемы с восстановлением из резервной копии.
Я попробовал восстановить резервную копию из командной строки, но получил следующее:
root@my_server:/var/www/discourse# discourse restore my_server-2023-06-20-033008-v20210922064213.tar.gz
Starting restore: my_server-2023-06-20-033008-v20210922064213.tar.gz
[STARTED]
'system' has started the restore!
Marking restore as running...
Making sure /var/www/discourse/tmp/restores/default/2023-06-29-113408 exists...
Copying archive to tmp directory...
Unzipping archive, this may take a while...
EXCEPTION: /var/www/discourse/lib/discourse.rb:137:in `exec': Failed to decompress archive.
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
/var/www/discourse/lib/discourse.rb:171:in `execute_command'
/var/www/discourse/lib/discourse.rb:137:in `exec'
/var/www/discourse/lib/discourse.rb:33:in `execute_command'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:78:in `decompress_archive'
/var/www/discourse/lib/backup_restore/backup_file_handler.rb:23:in `decompress'
/var/www/discourse/lib/backup_restore/restorer.rb:42:in `run'
script/discourse:149:in `restore'
/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/thor-1.2.2/lib/thor/base.rb:485:in `start'
script/discourse:290:in `<top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:58:in `kernel_load'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli/exec.rb:23:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:492:in `exec'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:34:in `dispatch'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/cli.rb:28:in `start'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:45:in `block in <top (required)>'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/lib/bundler/friendly_errors.rb:117:in `with_friendly_errors'
/usr/local/lib/ruby/gems/3.2.0/gems/bundler-2.4.13/exe/bundle:33:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
Trying to rollback...
There was no need to rollback
Cleaning stuff up...
Removing tmp '/var/www/discourse/tmp/restores/default/2023-06-29-113408' directory...
Marking restore as finished...
Notifying 'system' of the end of the restore...
Finished!
[FAILED]
Restore done.
Что мне делать теперь?
Что-то не так с вашим файлом резервной копии. Возможно, он просто обрезан.