Ещё один оффлайн-дискурс «bootstrap failed с кодом выхода 5»

Привет, сообщество! Извините, что вынуждены встречаться в таких обстоятельствах. Discourse недоступен после неудачного обновления.

Та же история, что и здесь:

Discourse offline after failed upgrade "bootstrap failed with exit code 5"

Попытка обновиться до v3.2.0.beta3.

У меня всё ещё Ubuntu 16.04.

К счастью, у меня есть предыдущие образы Docker (надеюсь), но я не уверен, что делать для восстановления сервисов. Также использую DigitalOcean.

Ошибка:

FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle install --retry 3 --jobs 4' failed with return #<Process::Status: pid 448 exit 5>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params {"cd"=>"$home", "hook"=>"bundle_exec", "cmd"=>["su discourse -c 'bundle config --local deployment true'", "su discourse -c 'bundle config --local without \"development test\"'", "su discourse -c 'bundle install --retry 3 --jobs 4'"]}
bootstrap failed with exit code 5
** 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.
e9fead51a802981ae53f85f54dc8bf7bf9fae5c1dab3e06e0d77ea0930ffb261

Может ли кто-нибудь помочь?

Пока у меня были старые образы, я удалил самый новый…

docker rmi 51421f454322 -f

У меня есть старые контейнеры, но при попытке запустить ./launcher start app система, похоже, предпочитает удалённый образ.

root@hostname:/var/discourse# ./launcher start app
WARNING: Docker version 17.05.0-ce deprecated, recommend upgrade to 17.06.2 or newer.
x86_64 arch detected.
WARNING: containers/app.yml file is world-readable. You can secure this file by running: chmod o-rwx containers/app.yml

starting up existing container
+ /usr/bin/docker start app
app

root@hostname:/var/discourse# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                                      NAMES
afeec2777503        51421f454322        "/sbin/boot"        3 hours ago         Up 5 seconds        0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   app
root@hostname:/var/discourse# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
discourse/base      2.0.20231218-0429   984f729957df        12 days ago         3.14GB

Есть ли способ продолжить работу с идентификатором образа 984f729957df?

Проще всего создать новый дроплет, скопировать на него /var/discourse и выполнить пересборку там. Это решит проблему, а не просто смягчит её.

Существует команда launcher, которая выведет команду docker, что может помочь. Вы можете посмотреть в скрипте launcher, чтобы найти её название (но я сейчас с телефона).

Похоже, вы предлагаете: ./launcher start-cmd app

Он выводит довольно много информации, начиная с + true run --shm-size=512m -d --restart=always...

Рискну предположить, я попробовал:
docker + true run 984f729957df --shm-size=512m -d --restart=always ..., но безрезультатно.

container_linux.go:247: запуск процесса контейнера вызвал ошибку: "exec: \"--shm-size=512m\": исполняемый файл не найден в $PATH"
docker: Ошибка ответа от демона: oci runtime error: container_linux.go:247: запуск процесса контейнера вызвал ошибку: "exec: \"--shm-size=512m\": исполняемый файл не найден в $PATH".

Буду благодарен за любую помощь. Спасибо.

Да, что-то в этом роде. Я не знаю, как это сделать. Возможно, вы удалили единственное пригодное изображение.

Моя рекомендация остаётся прежней: запустите новый дроплет и перенесите данные. Если бы вы были моим клиентом, я бы поступил именно так.

Спасибо за совет. Я не сторонник незапланированных миграций, но, похоже, это неизбежно. Я предполагаю, что вы имеете в виду это? Move a Discourse site to another VPS with rsync

Будут ли какие-то дополнительные инструкции, если мы включили DO Spaces (S3-хранилище)?

Учитывая время года, будет очень сложно (читай: вероятно, невозможно) скоординировать остальных для внесения необходимых изменений в срок.

Я бы предпочёл сначала откатиться к последнему рабочему состоянию, чтобы затем спланировать миграцию.

Кто-нибудь может помочь?

Нет, если вы следовали руководству Настройка провайдера объектного хранилища, совместимого с S3, для загрузки файлов. Если настройки уже внесены в базу данных, восстановление может оказаться более сложным по сравнению с использованием rsync.

Переход на новый дроплет сопряжён с минимальным риском, так как вы всегда можете вернуть DNS-записи на ваш отключённый сайт. Однако, если у вас нет доступа к настройкам DNS и аккаунту DigitalOcean, вы окажетесь в тупике.

Кажется, вы, возможно, упустили цитирование чего-то, связанного с командой запуска. Похоже, это именно то, что вам нужно сделать.

Удачи

Настройка провайдера объектного хранилища, совместимого с S3, для загрузок

Я настраивал эту службу в 2016 году, поэтому, к сожалению, похоже, что у нас эти настройки находятся в базе данных? В app.yml нет параметров S3.

Есть ли какие-либо другие подводные камни, о которых мне следует знать?

Если вы перенесёте данные через rsync, всё должно работать нормально. Затем вы сможете переключиться на рекомендуемую конфигурацию. Проблемы могут возникнуть, если вы попытаетесь восстановить базу данных.

Ещё раз спасибо за помощь. Что касается rsync, я немного обеспокоен тем, что инструкции прямо говорят следующее:

  1. Настроить новый сервер и выполнить синхронизацию.
  2. Остановить службу на старом сервере.
  3. Выполнить синхронизацию снова, но с флагом --delete.

Это звучит рискованно, а также невозможно в моей ситуации. Это будет проблемой? Мне кажется, речь идёт лишь о том, чтобы убедиться, что всё, что произошло на форуме с момента последней синхронизации rsync, будет скопировано, но я могу ошибаться.

Обновление:
Мы снова в сети с совершенно новым Droplet.

Рад, что теперь знаю: миграция — процесс относительно простой. Было бы гораздо круче, если бы обновление не сломало старый Droplet.

Понимаю, что сейчас праздник, но было бы здорово, если бы кто-то из команды разработчиков уделил время изучению этой проблемы. Не думаю, что это единичный случай. Меня отметили в другой ветке, где растёт коллекция.