Ошибка 500 при попытке обновления Discourse

Получил эту ошибку

CleanShot 2024-04-17 at 13.44.50

В логах показано

Как мне исправить это?

cd /var/discourse
./launcher rebuild app

Не удивляйтесь, если это займёт 20–30 минут. После завершения подождите пару минут, чтобы веб-сервер успел запуститься.

Спасибо. Я выполнил:

sudo su
cd /var/discourse
./launcher rebuild app

Получил эту ошибку:

/bin/docker: error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/98/984f729957dff9b39ddce4a2a23174a21777d07a629e6f5ebef1540ef2d7b3bf/data?verify=1713392277-sO3GxYp6PxjnEeCwTBcPF%2FqE5Kw%3D: x509: certificate has expired or is not yet valid.
See '/bin/docker run --help'.
Your Docker installation is not working correctly

В теме Troubleshoot docker installation issues решения не нашлось.

Вы уверены, что время и дата на этой машине установлены правильно?

[root@li511-discourse]# date 
Wed Apr 17 21:46:08 UTC 2024

Я нахожусь в Бэй-Эр, и это время кажется правильным.

Это работает?

docker run hello-world

К сожалению, нет

 docker run hello-world
Не удалось найти образ 'hello-world:latest' локально
docker: Ошибка ответа от демона: отсутствует ключ подписи.
См. 'docker run --help'.

Хорошая новость в том, что проблема не в Discourse.

Скорее всего, проще всего будет запустить новую виртуальную машину. Следующий шаг — попросить вашу IT-команду разобраться в ситуации. Если вы сами составляете эту команду, то я бы снова проверил часы, сеть и DNS. Говорят, проблема всегда в DNS.

Это моя виртуальная машина, и она у меня уже лет семь. Я не трогал её последние 2–3 года, и, видимо, всё накопилось.

Когда вы говорите о новой виртуальной машине, имеется в виду новая установка Discourse? В таком случае мне нужно будет перенести данные на эту машину?

Операционная система устарела, а цепочка сертификатов некорректна. Вам потребуется новая виртуальная машина с новой операционной системой.

Перенос сайта Discourse на другой VPS с помощью rsync — это то, что я бы сделал.

Более простой способ, хотя и с небольшим временем простоя, — это создать новый сервер и восстановить резервную копию.

Вы сможете запустить старый контейнер с помощью команды:

./launcher start app