./launcher: сборка приложения для старой версии 1.6 Discourse не работает

Финальный кусок пазла для меня

У меня есть старые форумы, которые я только что перенес на новое место, но мне все еще нужен к ним доступ. Я отредактировал app.yml, чтобы изменить имя домена, а затем запустил ./launcher rebuild app --skip-prereqs, чтобы обновить систему, но это не сработало.

Проверка актуальности лаунчера
Получение origin
Лаунчер актуален
Остановка старого контейнера
+ /usr/bin/docker stop -t 60 app
app
2.0.20230116-0051: Получение образа из discourse/base
e01f084ee363: Уже существует
db2fb8a75c87: Уже существует
6e789f3cf3a6: Уже существует
afa15f3b4f49: Уже существует
bd9a8f354aab: Уже существует
7492e41ba139: Уже существует
17620c643046: Уже существует
24a2215b994e: Уже существует
3119b33deb35: Уже существует
32a8b7f7c0e8: Уже существует
2dbcf46b2450: Уже существует
bdc228d4887d: Уже существует
914f28af582f: Уже существует
4a67c541b202: Уже существует
d3fc17f1b671: Уже существует
77b3d250e54b: Уже существует
9329aa462aa8: Уже существует
daeee236a97d: Уже существует
b7746b7c02a0: Уже существует
5c28ac2537d4: Уже существует
56d3ef9b7e39: Уже существует
3bb00ba1ec5a: Уже существует
1f758f6d6132: Уже существует
374c5f9048f9: Уже существует
0259a5d2f899: Уже существует
3ad74725ef87: Уже существует
f61c04c40065: Уже существует
1917d29aeb87: Уже существует
6bf5a4e9b5be: Уже существует
0f99e9c433c1: Уже существует
5c757ebc11e3: Уже существует
eb1d61649fc0: Уже существует
b3fce4a2403d: Уже существует
2252a5634a08: Уже существует
3b67775f0e8d: Уже существует
fb7e87c0cabf: Уже существует
f0ba17f026a5: Уже существует
aa579fdb2c50: Уже существует
9b282f6a881a: Уже существует
e60b39d46409: Уже существует
4e9e640a98df: Уже существует
0d2ba21fdd7e: Уже существует
5871f9f51cef: Уже существует
2a25ca72ae61: Уже существует
a6b1f035e2fa: Уже существует
4f13760fda63: Уже существует
856119d0afd5: Уже существует
0d289e5416ba: Уже существует
7ee9fa0f4507: Уже существует
aa6751fe4791: Уже существует
a586d833efb5: Уже существует
769ebf485619: Уже существует
701cfc339927: Уже существует
Digest: sha256:xxx
Статус: Образ discourse/base:2.0.20230116-0051 актуален
/usr/local/lib/ruby/gems/3.1.0/gems/pups-1.1.1/lib/pups.rb
/usr/local/bin/pups --stdin
Указан флаг, который не определен: --shm-size
Смотрите '/usr/bin/docker run --help'.
cat: cids/app_bootstrap.cid: Нет такого файла или каталога
Загрузка не удалась с кодом выхода 2
** НЕ УДАЛОСЬ ЗАГРУЗИТЬ ** Пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть больше одной.
./discourse-doctor может помочь диагностировать проблему.
Имя контейнера не может быть пустым

DISCOURSE DOCTOR Вт Янв 24 13:46:45 GMT 2023
ОС: Linux xxxx01 3.13.0-37-generic #64-Ubuntu SMP Пн Сен 22 21:28:38 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux


Найден containers/app.yml

==================== НАСТРОЙКИ YML ====================
DISCOURSE_HOSTNAME=forumsold.xxxxx.com
SMTP_ADDRESS=smtp.xxxxx.com # (обязательно)
DEVELOPER_EMAILS=xxxxxx
SMTP_PASSWORD=xxxxx # (необязательно)
SMTP_PORT=25 # (необязательно)
SMTP_USER_NAME=xxxxx # (необязательно)
LETSENCRYPT_ACCOUNT_EMAIL=

==================== ИНФОРМАЦИЯ О DOCKER ====================
ВЕРСИЯ DOCKER: Docker версия 1.7.0, сборка 0baf609

ПРОЦЕССЫ DOCKER (docker ps -a)

ID КОНТЕЙНЕРА        ОБРАЗ                 КОМАНДА             СОЗДАН              СТАТУС                      ПОРТЫ               ИМЯ
456040e68bec        local_discourse/app   "/sbin/boot"        6 лет назад         Завершено (5) 52 минуты назад                       app                 
91834fc0d913        hello-world           "/hello"            7 лет назад         Завершено (0) 7 лет назад                          ecstatic_poitras    

==================== СЕРЬЕЗНАЯ ПРОБЛЕМА!!!! ====================
app не запущен!
Попытка пересборки
==================== ЖУРНАЛ ПЕРЕСБОРКИ ====================
ОШИБКА: Версия Docker 1.7.0 не поддерживается, пожалуйста, обновитесь как минимум до 17.03.1 или, рекомендуется, до 17.06.2
==================== КОНЕЦ ЖУРНАЛА ПЕРЕСБОРКИ ====================
Не удалось пересобрать app.

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

Соединение с xxxx.xxxxxx.com успешно.
Вам, вероятно, следует удалить любые нестандартные плагины и пересобрать систему.
Попытка перезапуска существующего контейнера. . . 
ОШИБКА: Версия Docker 1.7.0 не поддерживается, пожалуйста, обновитесь как минимум до 17.03.1 или, рекомендуется, до 17.06.2
Не удалось перезапустить контейнер.


==================== ПЛАГИНЫ ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-solved.git

Необнаружено неофициальных плагинов.

Смотрите https://github.com/discourse/discourse/blob/main/lib/plugin/metadata.rb для официального списка.

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


==================== ИНФОРМАЦИЯ О ПАМЯТИ ====================
ОЗУ (МБ): 4048

             total       used       free     shared    buffers     cached
Mem:          3953       2058       1894          0         13       1811
-/+ buffers/cache:        233       3719
Swap:         2047        134       1913

==================== ПРОВЕРКА СВОБОДНОГО МЕСТА НА ДИСКЕ ====================
---------- Место на диске ОС ----------
Файловая система      Размер  Использовано  Доступно  Использовано%  Монтировано на
/dev/vda1        79G   66G  9.5G  88% /

==================== ИНФОРМАЦИЯ О ДИСКЕ ====================

ПРЕДУПРЕЖДЕНИЕ: На '/dev/vda' обнаружена GPT (GUID Partition Table)! Утилита fdisk не поддерживает GPT. Используйте GNU Parted.


Диск /dev/vda: 85.9 ГБ, 85899345920 байт
255 головок, 63 секторов/трек, 10443 цилиндров, всего 167772160 секторов
Единицы = секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт
Идентификатор диска: 0x00000000

   Устройство Boot      Start         End      Blocks   Id  System
/dev/vda1               1   167772159    83886079+  ee  GPT

==================== КОНЕЦ ИНФОРМАЦИИ О ДИСКЕ ====================

==================== ТЕСТ ПОЧТЫ ====================
Для надежного теста получите адрес на http://www.mail-tester.com/
Или просто отправьте тестовое сообщение себе.
Адрес электронной почты для теста почты? ('n' чтобы пропустить) [xxxxxx]: n
Тест почты пропущен.
Замена: SMTP_PASSWORD
Замена: LETSENCRYPT_ACCOUNT_EMAIL
Замена: DEVELOPER_EMAILS
Замена: DISCOURSE_DB_PASSWORD
Замена: Отправка почты на

==================== ГОТОВО! ====================

Если вы перенесли всю установку, пробовали ли вы просто запустить контейнер перед попыткой обновления?

Если у вас есть резервная копия, почему бы не восстановить её на чистой установке?

Вы пытаетесь выполнить пересборку из версии 1.6, что должно сработать, но это гораздо более хлопотно.

Зачем пропускать предварительные требования? При пересборке это не пропускает обновление, а только проверки, которые избавляют вас от более сложных для устранения ошибок.

Можете ли вы обновить Docker заодно?

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

Пропускаю предварительные требования, потому что не могу использовать команду пересборки лаунчера без них — требуются версии Docker v1.7 и v1.8. Но, возможно, это и есть проблема, так что я попробую обновить их сейчас.
Просто немного запутался, так как не обновлял эти форумы, и не понимаю, почему пересборка не работает, ведь я не менял никаких зависимостей и т. д.

Единственное, что я изменил, — это файл app.yml для обновления имени хоста и попытался запустить пересборку, которая не работает без пропуска предварительных требований.

Последний лаунчер и образ Docker несовместимы с Discourse 1.6. Вам потребуется перейти на более старую версию discourse_docker. Например, команда git checkout 2ec550f может сработать…

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

Я больше не могу этого сделать, так как не могу перезапустить приложение.

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

Проблема в том, что вы обновили базовый образ Discourse.

Затем я бы выполнил rsync для директории /var/discourse/shared на новый сервер.

Сработает ли это, если я использую более новую сборку Discourse на новом сервере?

Почему бы не рассказать нам, какого результата вы здесь хотите достичь?

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

Если же вы просто хотите запустить экземпляр версии 1.6 вместо его обновления, то рекомендации будут иными. Без учёта изменения имени хоста вы обычно просто копируете содержимое каталога /var/discourse между серверами. Пока на машине-получателе установлен Docker, его можно просто запустить с помощью команды ./launcher start

Мне просто нужен доступ к старым форумам, так как некоторые сообщения не были перенесены на новую установку (резервная копия немного устарела).

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

Что мне делать, если произошло изменение имени хоста?

Да, должно сработать.