К счастью, у меня есть предыдущие образы 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, чтобы найти её название (но я сейчас с телефона).
Он выводит довольно много информации, начиная с + 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".
Переход на новый дроплет сопряжён с минимальным риском, так как вы всегда можете вернуть DNS-записи на ваш отключённый сайт. Однако, если у вас нет доступа к настройкам DNS и аккаунту DigitalOcean, вы окажетесь в тупике.
Кажется, вы, возможно, упустили цитирование чего-то, связанного с командой запуска. Похоже, это именно то, что вам нужно сделать.
Если вы перенесёте данные через rsync, всё должно работать нормально. Затем вы сможете переключиться на рекомендуемую конфигурацию. Проблемы могут возникнуть, если вы попытаетесь восстановить базу данных.
Ещё раз спасибо за помощь. Что касается rsync, я немного обеспокоен тем, что инструкции прямо говорят следующее:
Настроить новый сервер и выполнить синхронизацию.
Остановить службу на старом сервере.
Выполнить синхронизацию снова, но с флагом --delete.
Это звучит рискованно, а также невозможно в моей ситуации. Это будет проблемой? Мне кажется, речь идёт лишь о том, чтобы убедиться, что всё, что произошло на форуме с момента последней синхронизации rsync, будет скопировано, но я могу ошибаться.
Обновление:
Мы снова в сети с совершенно новым Droplet.
Рад, что теперь знаю: миграция — процесс относительно простой. Было бы гораздо круче, если бы обновление не сломало старый Droplet.
Понимаю, что сейчас праздник, но было бы здорово, если бы кто-то из команды разработчиков уделил время изучению этой проблемы. Не думаю, что это единичный случай. Меня отметили в другой ветке, где растёт коллекция.