Форум упал более суток назад, я в отчаянии

Я установил несколько плагинов и выполнил команду ./launcher rebuild app
Это прошло успешно, но при входе на форум появляется сообщение:

Ой

Программное обеспечение, управляющее этим форумом, столкнулось с непредвиденной проблемой. Приносим извинения за неудобства.

Подробная информация об ошибке была зафиксирована в логах, и было сгенерировано автоматическое уведомление. Мы разберёмся с этим.

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

Ошибки в логах:


Digest: sha256:f7467469ab9e39c3548d4478e3f416c05b34a0ee58eb6e40b963e562005669cc

Status: Downloaded newer image for discourse/base:2.0.20230313-1023

docker.io/discourse/base:2.0.20230313-1023

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: unable to apply apparmor profile: apparmor failed to apply profile: write /proc/self/attr/apparmor/exec: no such file or directory: unknown.


docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: unable to apply apparmor profile: apparmor failed to apply profile: write /proc/self/attr/apparmor/exec: no such file or directory: unknown.


Проверка вашего доменного имени . . .

Соединение с luxx.com успешно установлено.

Возможно, вам следует удалить любые нестандартные плагины и выполнить сборку заново.
Попытка перезапуска существующего контейнера . . .

Обнаружена архитектура x86_64.

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: unable to apply apparmor profile: apparmor failed to apply profile: write /proc/self/attr/apparmor/exec: no such file or directory: unknown.

docker: Error response from daemon: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: unable to apply apparmor profile: apparmor failed to apply profile: write /proc/self/attr/apparmor/exec: no such file or directory: unknown.

Ваша установка Docker работает некорректно.

См.: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam
Не удалось перезапустить контейнер.


ПРЕДУПРЕЖДЕНИЕ:
Кажется, у вас установлены неофициальные плагины.
Если у вас возникли проблемы, отключите их и попробуйте выполнить сборку заново.

См. официальный список по ссылке: https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb

========================================
Версия Discourse на luxx.com: НЕ НАЙДЕНА
Версия Discourse на localhost: НЕ НАЙДЕНА

Вы последовали этому совету? Какие плагины вы пытались добавить?

Если на мгновение проигнорировать ошибку Docker, это всегда должно быть вашим первым шагом.

При пересборке покажите это

root@debian-4gb-ash-1:/var/discourse# ./launcher rebuild app
Обнаружена архитектура x86_64.
docker: Ошибка ответа от демона: не удалось создать задачу shim: сбой выполнения OCI runtime create: сбой runc create: не удалось запустить процесс контейнера: ошибка во время инициализации контейнера: не удалось применить профиль AppArmor: сбой применения профиля AppArmor: запись в /proc/self/attr/apparmor/exec: файл или каталог не найден: неизвестно.
docker: Ошибка ответа от демона: не удалось создать задачу shim: сбой выполнения OCI runtime create: сбой runc create: не удалось запустить процесс контейнера: ошибка во время инициализации контейнера: не удалось применить профиль AppArmor: сбой применения профиля AppArmor: запись в /proc/self/attr/apparmor/exec: файл или каталог не найден: неизвестно.
Ваша установка Docker работает некорректно

См.: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam
root@debian-4gb-ash-1:/var/discourse#

Есть ли способ удалить старый Docker и установить новый?

Привет, mecay,

Вы переходили по этой ссылке и следовали рекомендациям, изложенным в ней?

Да, но даже следуя его советам, я не смог устранить ошибку. Я искал информацию в Google, но безрезультатно.

Поможет ли удаление Docker и установка новой версии? Как это сделать?

Вот вывод:

docker: Error response from daemon: AppArmor enabled on system but the docker-default profile could not be loaded: strconv.Atoi: parsing "found": invalid syntax.
docker: Error response from daemon: AppArmor enabled on system but the docker-default profile could not be loaded: strconv.Atoi: parsing "found": invalid syntax.
Your Docker installation is not working correctly

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

Вы пробовали это сделать?

Перезагрузка — это ./launcher rebuild app?
Или это другая команда?

Полагаю, «reboot» означает сейчас shutdown -r now.

Я попробовал здесь, но выводится следующее:

docker.io/discourse/base:2.0.20230313-1023
docker: Ошибка ответа от демона: AppArmor включен в системе, но профиль docker-default не может быть загружен: strconv.Atoi: анализ "found": недопустимый синтаксис.
docker: Ошибка ответа от демона: AppArmor включен в системе, но профиль docker-default не может быть загружен: strconv.Atoi: анализ "found": недопустимый синтаксис.
Ваша установка Docker работает неправильно.

Проблема не в Docker или Discourse, а в инструменте безопасности AppArmor. Профиль, необходимый для работы Docker, повреждён, а так как AppArmor включён, он блокирует запуск Docker.

Вам нужно либо выяснить, что нарушило профиль AppArmor, и исправить его, либо отключить AppArmor.

Я новичок в Discourse, не подскажете, как это сделать?

AppArmor является частью вашей установленной операционной системы.

Какой результат выдает команда apparmor_status на вашем сервере?

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

Вот результат

Без cd /var/discourse

root@debian-4gb-ash-1:~# apparmor_status
модуль apparmor загружен.
Загружено 6 профилей.
6 профилей находятся в режиме принудительного исполнения.
   /usr/bin/man
   lsb_release
   man_filter
   man_groff
   nvidia_modprobe
   nvidia_modprobe//kmod
0 профилей находятся в режиме жалобы.
0 процессов имеют определённые профили.
0 процессов находятся в режиме принудительного исполнения.
0 процессов находятся в режиме жалобы.
0 процессов не ограничены, но имеют определённый профиль.

С cd /var/discourse

root@debian-4gb-ash-1:/var/discourse# apparmor_status
модуль apparmor загружен.
Загружено 6 профилей.
6 профилей находятся в режиме принудительного исполнения.
   /usr/bin/man
   lsb_release
   man_filter
   man_groff
   nvidia_modprobe
   nvidia_modprobe//kmod
0 профилей находятся в режиме жалобы.
0 процессов имеют определённые профили.
0 процессов находятся в режиме принудительного исполнения.
0 процессов находятся в режиме жалобы.
0 процессов не ограничены, но имеют определённый профиль.

Если проблема всё ещё сохраняется, возможно, будет проще создать новый Droplet и установить чистый экземпляр, чем отлаживать существующий.

Или вы можете воспользоваться разделом Marketplace, чтобы получить профессиональную помощь, если у вас есть бюджет?

У меня нет денег :frowning: :cry:

Я не знаю, что ещё делать. Эти дни — полный хаос. Если бы я знал, что это из-за плагина, я бы никогда его не установил.

Как работает создание нового дроплета?

Нужно ли мне скачать мой дроплет с сервера и загрузить его на другой сервер?
Но как этот дроплет будет общаться с моим форумом?

Сначала вам нужно скачать резервную копию (или две) с вашего хостинга Discourse на свой компьютер. Затем вы установите свежую версию Discourse на новый сервер и восстановите данные из резервной копии.

Начать необходимо с сохранения локальной копии резервной копии!

Как мне загрузить эту копию? У меня нет доступа к моему форуму, он недоступен, только через SSH.

Если у вас есть доступ по SSH, вы сможете использовать scp или rsync для копирования вашей папки резервных копий, которая, скорее всего, находится в

/var/discourse/shared/standalone/backups/default

Вы можете вывести список содержимого этой директории, например, с помощью команды
rsync -ratz username@hostname:/var/discourse/shared/standalone/backups/default

а затем скопировать содержимое в текущую директорию, например, так:
rsync --progress -ratz username@hostname:/var/discourse/shared/standalone/backups/default/. .

Редактирование: (Эти команды нужно запускать на вашем собственном компьютере, чтобы загрузить резервные копии с удалённого компьютера. Я предполагаю, что вы используете Linux, macOS или Linux-подобную среду в Windows. В противном случае, думаю, что на Windows можно использовать программу PuTTY для копирования файлов, либо она поставляется вместе с утилитой scp. Либо вам может понадобиться WinSCP.)