Ошибка после обновления до Ubuntu 22.04.1 LTS

Только что обновился до Ubuntu 22.04.1 LTS.

Затем выполнил:

cd /var/discourse
sudo git pull
sudo ./launcher rebuild app

Некоторое время всё работало, но затем произошла ошибка (см. ниже).

Если я теперь снова выполню:

sudo ./launcher rebuild app

То сразу же получаю ту же ошибку:

$ sudo ./launcher rebuild app
x86_64 arch detected.
docker: Error response from daemon: cgroups: cgroup mountpoint does not exist: unknown.
ERRO[0000] error waiting for container: context canceled
Your Docker installation is not working correctly

See: https://meta.discourse.org/t/docker-error-on-bootstrap/13657/18?u=sam

Я следовал инструкциям из статьи по ссылке. Они выполнились успешно.

К сожалению, при повторном запуске

sudo ./launcher rebuild app

ошибка возникла снова.


Обновление 1

Один из пользователей предложил установить cgroup-tools:

sudo apt update
sudo apt -y install cgroup-tools

(Источник)

К сожалению, это не помогло в моём случае, даже после перезагрузки.


Обновление 2

Я также обновил Docker с версии 19.x до 20.x.

Затем, после перезагрузки, я снова попытался выполнить:

sudo ./launcher rebuild app

На этот раз всё прошло успешно.

:tada: Мой форум теперь снова работает корректно :partying_face:

Я предполагаю, что вы обновились с версии 20.04.x LTS.

Завтра я проведу тестовое обновление в локальной виртуальной машине. Я подозреваю, что ключевым моментом будет повторение шага 3 «Настройка репозитория», то есть обновление файла /etc/apt/sources.list.d/docker.list для использования jammy вместо focal, а затем выполнение apt-get update && apt-get upgrade для обновления пакетов в соответствии с новым списком источников.

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

На всякий случай сообщаю: я только что обновил песочницу с версии 20.04 до 22.04.1. Всё, что связано с Discourse, работает (меня заблокировало из экземпляра Oracle, но это уже другая история :sweat_smile:).

В итоге я всё-таки сделал это сегодня вечером. Способ обработки GPG-ключей в версии 20.04 устарел, но достаточно просто заново добавить репозиторий Docker для apt и выполнить обновление.

Итак, процесс обновления существующей установки Discourse с Ubuntu 20.04 до 22.04 следующий:

  1. Выполните обновление релиза в 20.04, следуя стандартным шагам.
  2. Перезагрузите систему для завершения обновления.
  3. Согласно инструкции по установке Docker, выполните шаги 2 и 3 раздела «Настройка репозитория».
  4. sudo apt-get update && sudo apt-get upgrade

Я всегда поступаю так: запускаю новую виртуальную машину, проверяю, что всё работает, а затем восстанавливаю на ней резервную копию. При этом нет простоя и нет риска, что что-то пойдёт не так и вы застрянете. Вы даже можете использовать эластичный IP-адрес (как там это называется в DigitalOcean, я как-то забыл) и переключить его, так что вам даже не придётся менять DNS.

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

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

Они называют это плавающими IP-адресами :slight_smile:

Я использую точно такую же стратегию для всего, что находится в продакшене, но при этом пробую процесс обновления ОС в песочнице, чтобы убедиться, что знаю все проблемные места. Люди пытаются обновить ОС на той же виртуальной машине в продакшене и в итоге ломают всё (без резервной копии), поэтому это помогает устранять неполадки при таких установках.

У кого-то возникала ошибка при попытке обновиться до версии 22.04?

Подготовка к распаковке .../docker.io_20.10.7-0ubuntu1~20.04.1_amd64.deb ...
Драйвер хранения aufs больше не поддерживается.
Пожалуйста, убедитесь, что ни один из ваших контейнеров
не использует драйвер хранения aufs, удалите каталог
/var/lib/docker/aufs и повторите попытку.

Раньше так и называли, но сейчас это «Зарезервированный IP» (что, на мой взгляд, не лучшее название): Release Notes | DigitalOcean Documentation

16 июня

  • Мы переименовали продукт Floating IP в Reserved IPs. Сервис Reserved IP сохраняет ту же функциональность, что и предыдущий сервис.