После обновления docker_manager через интерфейс (что, казалось, прошло успешно), панель Администратора просто отобразила пустую страницу, хотя остальная часть форума, похоже, работала нормально.
Чтобы решить эту проблему, я попытался выполнить:
./launcher rebuild app
Однако в процессе выполнения возникли ошибки:
I, [2025-07-14T08:54:06.062789 #1] INFO -- : > cd /var/www/discourse && sudo -H -E -u discourse bash -c '
set -o errexit
if [ $(git rev-parse --is-shallow-repository) == "true" ]; then
git remote set-branches --add origin main
git remote set-branches origin tests-passed
git fetch --depth 1 origin tests-passed
else
git fetch --tags --prune-tags --prune --force origin
fi
'
error: packfile .git/objects/pack/pack-581fe47ace192793da04d01989a4d1a7f0e6103c.pack does not match index
error: packfile .git/objects/pack/pack-581fe47ace192793da04d01989a4d1a7f0e6103c.pack does not match index
error: packfile .git/objects/pack/pack-581fe47ace192793da04d01989a4d1a7f0e6103c.pack does not match index
error: packfile .git/objects/pack/pack-581fe47ace192793da04d01989a4d1a7f0e6103c.pack does not match index
… и ошибка error: packfile продолжает появляться до тех пор, пока процесс не будет прерван.
Судя по всему, репозиторий git повреждён. Но какой именно репозиторий?
У меня даже нет папки /var/www/discourse, поэтому я предполагаю, что это находится внутри тома контейнера?
error: packfile .git/objects/pack/pack-581fe47ace192793da04d01989a4d1a7f0e6103c.pack does not match index
error: packfile .git/objects/pack/pack-581fe47ace192793da04d01989a4d1a7f0e6103c.pack does not match index
error: packfile .git/objects/pack/pack-581fe47ace192793da04d01989a4d1a7f0e6103c.pack does not match index
и так далее..
Я попытался решить проблему, переименовав discourse и клонировав новый репозиторий:
Наконец-то всё заработало!
Думаю, это было сочетание повреждённого git и последствий предыдущего обновления Docker. Я решил проблему, удалив все контейнеры и образы Docker:
cd /opt/discourse
./launcher stop app
docker container prune
docker image prune -a
./launcher rebuild app
В результате процесс завершился следующим сообщением:
Обновление завершено
----------------
Статистика оптимизатора не переносится утилитой pg_upgrade.
После запуска нового сервера рекомендуется выполнить:
/usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages
Выполнение этого скрипта приведёт к удалению файлов данных старого кластера:
./delete_old_cluster.sh
-------------------------------------------------------------------------------------
ОБНОВЛЕНИЕ POSTGRES ЗАВЕРШЕНО
Старая база данных версии 13 хранится в /shared/postgres_data_old
Для завершения обновления выполните повторную сборку с помощью:
./launcher rebuild app
-------------------------------------------------------------------------------------
После повторного выполнения команды rebuild всё заработало в полном объёме: