Ваша установка Docker не использует поддерживаемый драйвер хранения.

Привет, ребята! У меня возникла проблема с обновлением, которое выдает следующее сообщение:

Если вы хотите продолжить, используя свой существующий неподдерживаемый драйвер хранилища,
изучите исходный код лаунчера и выясните, как обойти эту проверку.
root@sendy:/var/docker/discourse# git pull
Уже актуально.
root@****:/var/docker/discourse# ./launcher rebuild app
Ваша установка Docker не использует поддерживаемый драйвер хранилища. Если бы мы т.
Рекомендуется использовать драйвер overlay2, хотя zfs и aufs также могут работать.
Известно, что другие драйверы хранилища вызывают проблемы.
Вы можете узнать, какую файловую систему используете, запустив команду "docker info" и посмотрев.

Если вы хотите продолжить, используя свой существующий неподдерживаемый драйвер хранилища,
изучите исходный код лаунчера и выясните, как обойти эту проверку.
root@****:/var/docker/discourse# docker info
Контейнеры: 5
Образы: 74
Драйвер хранилища: devicemapper
 Имя пула: docker-8:0-1970634-pool
 Размер блока пула: 65.54 кБ
 Файл данных: /var/lib/docker/devicemapper/devicemapper/data
 Файл метаданных: /var/lib/docker/devicemapper/devicemapper/metadata
 Использовано места для данных: 34.15 ГБ
 Всего места для данных: 107.4 ГБ
 Использовано места для метаданных: 41.37 МБ
 Всего места для метаданных: 2.147 ГБ
 Версия библиотеки: 1.02.82-git (2013-10-04)
Драйвер выполнения: native-0.2
Версия ядра: 5.6.14-x86_64-linode135
Операционная система: Debian GNU/Linux

Привет, @pauln

Если ваш хост использует Docker только для поддержки Discourse и ядро Linux поддерживает OverlayFS, то я рекомендую вам (осторожно) перенастроить Docker для использования драйвера хранилища overlay2.

Надеюсь, это поможет.

Не могли бы вы подсказать, как это сделать?

Я работаю на Linode (Debian 7.5).

Не могли бы вы объяснить, как перенастроить Docker?

Согласно официальной документации Docker:

Для установки Docker Engine требуется 64-битная версия одной из следующих версий Debian или Raspbian:

  • Debian Buster 10 (стабильная)
  • Debian Stretch 9 / Raspbian Stretch

Рекомендую использовать обновлённый VPS.

@pauln

Привет, я уже в системе и бодрствую.

Что ты хочешь сделать?

Ты хочешь перейти на более свежую версию Debian или мне сначала попробовать запустить твою версию 7.5?

Если ты хочешь, чтобы я попробовал запустить твою версию 7.5, мне нужно знать:

  • Запущено ли в Docker что-то ещё?

Проблема в том, что при изменении драйвера хранилища Docker в конфигурационном файле все существующие контейнеры станут недоступны. Поэтому нам нужно будет:

  • Убедиться, что у тебя есть полная резервная копия Discourse (всегда).

  • Остановить Docker.

  • Отредактировать конфигурацию Docker, чтобы изменить драйвер хранилища.

  • Перезапустить Docker.

  • Пересобрать Discourse.

Если ядро твоего Debian поддерживает OverlayFS, всё пройдёт гладко. Если нет, операция завершится ошибкой, но вреда не будет — мы сможем вернуться к devicemapper.

Дай знать, как ты хочешь поступить.

Спасибо.

Да, я бы хотел сначала заставить это работать на версии 7.5. Docker запускает только Discourse.

Спасибо, давайте сделаем это :slight_smile:

Хорошо… я так и подумал :slight_smile:

На самом деле шаги описаны здесь:

Кратко ознакомьтесь и дайте знать, если вы согласны с описанными шагами или если у вас есть вопросы.

Спасибо.

Хорошо, давайте попробуем эти шаги, и я вернусь к вам? Я уже пробовал что-то похожее, но это не сработало. Буду держать вас в курсе.

Если ваше ядро Linux не поддерживает OverlayFS, это завершится ошибкой.

Не переживайте.

Вы можете откатить изменения :wink:

Если ошибки не возникнет, то я смогу вернуться ко сну :slight_smile:

Как я могу проверить, поддерживает ли это?

Docker не перезапустится.

Другими словами, шаг 5 в инструкциях по Docker (выше) завершится ошибкой:

5. Запустите Docker.

$ sudo systemctl start docker

Это либо завершится ошибкой, либо успешно…

(возможно, вам потребуется другая команда вместо systemctl, но концепция остаётся той же)

Окей, пробую. Обновлю здесь.

Приятного времяпрепровождения.

Я не буду пить кофе, надеясь на чудо и на то, что ваше старое ядро Linux (по какой-то странной причине) действительно поддерживает OverlayFS.

Мой быстрый «поиск» в Google по этому поводу, честно говоря, не обнадеживает, но я стараюсь сохранять оптимизм.

:slight_smile:

Не сработало. :frowning: Как мне перенести форум на новый VPS, не потеряв все данные пользователей?

Загрузите ваш app.yml и последнюю резервную копию.

Ваш app.yml обычно находится в /var/discourse/containers.

Резервные копии хранятся в /var/discourse/shared/CONTAINERNAME/backups.

Если ваш сайт Discourse недоступен, их всё ещё можно загрузить через SFTP или используя SCP.

Привет, @pauln

Жаль это слышать. Я подозревал, что в твоём старом ядре нет поддержки OverlayFS, но иногда полезно попробовать и узнать что-то новое.

Хочешь остаться на Debian или перейти на Ubuntu при настройке новой системы?

Я использую Ubuntu «вечно», и она официально поддерживается Discourse, поэтому я рекомендую её. Но, конечно, выбор за тобой. Debian тоже крутой :slight_smile:

Привет @pauln

Есть целая толпа людей, которые помогут вам развернуть новый VPS, установить Discourse с нуля и восстановить ваш сайт; поэтому я пойду спать.

Было приятно работать с вами. В завершение вот моя рекомендация:

  • Разверните новый VPS на Linode с Ubuntu, так как вы уже пользователь Linode (как и я, кстати).
  • Установите Discourse с нуля (хорошо документировано).
  • Восстановите Discourse из вашей резервной копии (хорошо документировано).

Здесь много талантливых людей, которые проведут вас через этот процесс, поэтому я пока откланяюсь.

Всего наилучшего.

Доброе утро (по моему времени) @pauln

Я проверил для вас сегодня утром, и если вы по какой-то причине не хотите переходить на новый VPS в данный момент, вы можете попробовать тот же метод; только вместо overlay2 попробуйте aufs.

Согласно скрипту запуска Discourse:

  # 2. используется ли одобренный драйвер хранилища?
  if ! $docker_path info 2> /dev/null | egrep -q 'Storage Driver: (aufs|zfs|overlay2)$'; then

Это означает, что, поскольку некоторые старые версии Debian поддерживают aufs, а Discourse, судя по всему, также поддерживает aufs (из анализа скрипта запуска), вы можете попробовать этот вариант.

Однако лучше всего перейти на новый дистрибутив Linux и ядро, так как Debian 7.5 уже более двух лет не поддерживается (EOL), и всегда рекомендуется отказываться от устаревшего ПО, когда это возможно. Я бы однозначно выбрал этот путь и перешёл на драйвер хранилища overlay2 (настоятельно рекомендуется). Но это ваш выбор: если вы хотите попробовать aufs просто для интереса — пожалуйста. Всегда весело и полезно узнавать что-то новое.

Ссылка:

Надеюсь, это поможет.


Примечания к тестовой среде:

@pauln

Чтобы помочь вам, я только что создал новый VPS на Linode с Ubuntu, установил Docker и изменил драйвер хранилища на aufs:

# docker info | grep aufs
 Storage Driver: aufs
  Root Dir: /var/lib/docker/aufs

Затем я следовал стандартным инструкциям по установке Docker:

https://github.com/discourse/discourse/blob/master/docs/INSTALL-cloud.md

и Discourse установился без проблем поверх Docker с использованием драйвера хранилища aufs.

Так что, возможно, вы тоже можете попробовать это на своём VPS с Debian 7.5, если хотите, ради интереса и получения новых знаний.

Конечно, как официально, так и неофициально рекомендуется перейти на новый поддерживаемый VPS, как уже упоминалось ранее. Пожалуйста, сообщите нам о своём решении и о ходе работы.

Я только что закомментировал блок кода в launcher. Иногда приходится жить на грани :smiling_face_with_sunglasses:!