cd /var/discourse
sudo git pull
sudo ./launcher rebuild app
Затем я получил ошибку, и при прокрутке файла журнала единственной ошибкой было следующее:
ERROR: Error installing bundler:
bundler-2.5.3 requires Ruby version >= 3.0.0. The current ruby version is 2.7.2.137.
Как мне установить новую версию Ruby? Система изначально была установлена из образа Docker на Digital Ocean и не обновлялась, или обновлялась очень редко, в течение нескольких лет.
Она работает на Ubuntu 18.04.
Я запустил ./discourse-doctor
и обнаружил состояние отсоединённой головы (detached head), затем выполнил rebuild, но получил ту же ошибку с Ruby.
Я совершенно запутался.
Помогите, пожалуйста, как выполнить обновление с древней версии?
Учитывая возраст сервера, вам, скорее всего, лучше сделать резервную копию сайта, создать новый сервер, выполнить установку, а затем восстановить резервную копию на новом сервере.
Это будет меньше работы (и гораздо проще), чем обновление существующего сервера.
Но так как установка не удалась, я не могу запустить Discourse, чтобы сделать резервную копию. Я могу и сделал снимок (snapshot) цифрового океана (DigitalOcean) droplet, но, насколько я понимаю, это не совсем резервная копия.
Если у вас есть снимок droplet со всеми вашими данными до попытки обновления контейнера, вы сможете восстановить резервную копию из него.
Если нет, то вы, скорее всего, всё ещё в безопасности, но вам понадобится человек, разбирающийся в этом процессе, чтобы извлечь данные, если не удастся запустить контейнер снова.
Сейчас, даже при ошибке «bad gateway», если вы сможете попасть в контейнер, вы сможете выполнить discourse backup и получить свои данные.