Не удалось пересобрать приложение после установки этих плагинов

Здравствуйте,
Я провожу тестовую установку на DigitalOcean. Однако я не могу пересобрать приложение после добавления некоторых плагинов. Суть проблемы в том, что даже после удаления добавленных плагинов пересборка всё равно не удаётся.
Первый плагин в блоке кода плагинов — это тот, который поставляется вместе с установкой DigitalOcean, поэтому я следовал тому же формату. Что может быть не так?

Вот полный файл yaml

Добро пожаловать в Ubuntu 22.04.4 LTS (GNU/Linux 5.15.0-113-generic x86_64)

 * Документация:  https://help.ubuntu.com
 * Управление:     https://landscape.canonical.com
 * Поддержка:        https://ubuntu.com/pro

 Информация о системе по состоянию на Sun Jul 14 23:46:41 UTC 2024

  Загрузка системы:  0.0                Процессы:             96
  Использование /:   25.4% из 67.66 ГБ   Пользователи в системе:       0
  Использование памяти: 11%                
  Использование swap:   2%                 

Включите ESM Apps для получения дополнительных будущих обновлений безопасности.
См. https://ubuntu.com/esm или выполните: sudo pro status


********************************************************************************

Добро пожаловать в одношаговое приложение DigitalOcean Discourse

При первом входе вам будет предложено настроить установку Discourse.

Все скрипты и файлы Discourse можно найти в /var/discourse, а утилиту настройки
можно запустить снова, выполнив команду discourse-setup в этой директории.

За помощью и дополнительной информацией обращайтесь на https://do.co/3dmapBw

********************************************************************************
Чтобы удалить это сообщение дня: rm -rf /etc/update-motd.d/99-one-click

root@xxxxx:~# cd /var/discourse
nano containers/app.yml
root@xxxxxx:/var/discourse# ./launcher rebuild app
Архитектура x86_64 обнаружена.
Проверка актуальности лаунчера
Получение origin
Лаунчер актуален
Остановка старого контейнера
+ /usr/bin/docker stop -t 600 app
app
2.0.20240708-0023: Получение образа из discourse/base
Хеш-сумма: sha256:025e9c1f6848c4726544c6ae873d710c62f547b72afb7f537aaa44eb5377cb5c
Статус: Образ актуален для discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-07-14T23:48:26.474524 #1]  INFO -- : Чтение из stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `merge': неявное преобразование String в Hash (TypeError)

      first.merge(second, \u0026merger)
                  ^^^^^^^^^^^^^^^
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `deep_merge'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:61:in `block in run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `each'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/bin/pups:9:in `\u003ctop (required)\u003e'
	from /usr/local/bin/pups:25:in `load'
	from /usr/local/bin/pups:25:in `\u003cmain\u003e'
Загрузка не удалась с кодом выхода 1
** НЕ УДАЛОСЬ ЗАГРУЗИТЬСЯ ** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь диагностировать проблему.
b32a86eece508c0f95a8edacaf4ab693200cd5c64d54dea565466219f6d65e7f
root@xxxxx:/var/discourse# ./discourse-doctor
ДИАГНОСТИКА DISCOURSE Sun Jul 14 23:48:49 UTC 2024
ОС: Linux ogatrainer 5.15.0-113-generic #123-Ubuntu SMP Mon Jun 10 08:16:17 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux


Найден containers/app.yml

==================== НАСТРОЙКИ YML ====================
DISCOURSE_HOSTNAME=xxxxxxxxxxxxxxx
SMTP_ADDRESS=xxxxxxxxxxxxxxxx
DEVELOPER_EMAILS=xxxxxxxxxxxx
SMTP_PASSWORD=xxxxxxxxxxxx
SMTP_PORT=xxx
SMTP_USER_NAME=xxxxxxxxxxxxx
LETSENCRYPT_ACCOUNT_EMAIL=me@example.com

==================== ИНФОРМАЦИЯ DOCKER ====================
ВЕРСИЯ DOCKER: Docker version 27.0.3, сборка 7d4bcd8

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

ID КОНТЕЙНЕРА   ОБРАЗ                 КОМАНДА        СОЗДАН      СТАТУС                      ПОРТАЛИ    ИМЯ
aa1792677667   local_discourse/app   "/sbin/boot"   2 дня назад   Завершён (5) 23 минуты назад             app

==================== СЕРЬЁЗНАЯ ПРОБЛЕМА!!!! ====================
app не запущен!
Попытка пересборки
==================== ЖУРНАЛ ПЕРЕСБОРКИ ====================
Архитектура x86_64 обнаружена.
Проверка актуальности лаунчера
Получение origin
Лаунчер актуален
Остановка старого контейнера
+ /usr/bin/docker stop -t 600 app
app
2.0.20240708-0023: Получение образа из discourse/base
Хеш-сумма: sha256:025e9c1f6848c4726544c6ae873d710c62f547b72afb7f537aaa44eb5377cb5c
Статус: Образ актуален для discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-07-14T23:48:56.604647 #1]  INFO -- : Чтение из stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `merge': неявное преобразование String в Hash (TypeError)

      first.merge(second, \u0026merger)
                  ^^^^^^^^^^^^^^^
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `deep_merge'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:61:in `block in run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `each'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/bin/pups:9:in `\u003ctop (required)\u003e'
	from /usr/local/bin/pups:25:in `load'
	from /usr/local/bin/pups:25:in `\u003cmain\u003e'
Загрузка не удалась с кодом выхода 1
** НЕ УДАЛОСЬ ЗАГРУЗИТЬСЯ ** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь диагностировать проблему.
b9a2b268dd5c4ea7a1c3c878bb3bb9c121a068b543239cc4210180e2089ea888
==================== КОНЕЦ ЖУРНАЛА ПЕРЕСБОРКИ ====================
Не удалось пересобрать приложение.

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

Соединение с xxx.xxxxx.com успешно установлено.
Вам, вероятно, следует удалить любые нестандартные плагины и попытаться пересобрать.
Попытка перезапуска существующего контейнера . . . 
Архитектура x86_64 обнаружена.

Запуск существующего контейнера
+ /usr/bin/docker start app
Ошибка ответа от демона: сбой программирования внешней связи на конечной точке app (830abdf507c266ee25442d83f063be25c235c2d0710065d32a3ad9157f318d5c): не удалось привязать порт 0.0.0.0:443/tcp: Ошибка запуска пользовательского прокси: listen tcp4 0.0.0.0:443: bind: адрес уже используется
Ошибка: не удалось запустить контейнеры: app
Не удалось перезапустить контейнер.


==================== ПЛАГИНЫ ====================
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-reactions.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/paviliondev/discourse-landing-pages.git
          - git clone https://github.com/discourse/discourse-post-voting.git
          - git clone https://github.com/discourse/discourse-calendar.git
          - git clone https://github.com/discourse/discourse-topic-voting.git
          - git clone https://github.com/discourse/discourse-zoom.git
          - git clone https://github.com/discourse/discourse-follow.git
          - git clone https://github.com/discourse/discourse-ai.git
          - git clone https://github.com/discourse/discourse-subscriptions.git
          - git clone https://github.com/discourse/discourse-affiliate.git
          - git clone https://github.com/discourse/discourse-gamification.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/discourse/discourse-calendar.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/discourse/discourse-signatures.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/discourse/discourse-user-notes.git
          - git clone https://github.com/discourse/discourse-akismet.git
          - git clone https://github.com/procourse/procourse-static-pages.git

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

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

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


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

               всего        использовано        свободно      общее      кэш буферов   доступно
Память:            1963         214        1299           3         449        1588
Swap:           2047          46        2001

==================== ПРОВЕРКА МЕСТА НА ДИСКЕ ====================
---------- Место на диске ОС ----------
Файловая система      Размер  Использовано  Свободно  Использовано% Монтировано на
/dev/vda1        68G   18G   51G  26% /

==================== ИНФОРМАЦИЯ О ДИСКАХ ====================
Диск /dev/loop0: 87.03 МиБ, 91258880 байт, 178240 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop1: 38.83 МиБ, 40714240 байт, 79520 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop2: 63.29 МиБ, 66359296 байт, 129608 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop3: 49.84 МиБ, 52260864 байт, 102072 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop4: 111.95 МиБ, 117387264 байт, 229272 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/loop5: 63.95 МиБ, 67051520 байт, 130960 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт


Диск /dev/vda: 70 ГиБ, 75161927680 байт, 146800640 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт
Тип метки диска: gpt
Идентификатор диска: C2901603-FAE8-45CB-86FE-13D02E6B6DC6

Устройство      Начало       Конец   Сектора  Размер Тип
/dev/vda1  227328 146800606 146573279 69.9G Файловая система Linux
/dev/vda14   2048     10239      8192    4M Загрузочный раздел BIOS
/dev/vda15  10240    227327    217088  106M Система EFI

Записи таблицы разделов не в порядке на диске.


Диск /dev/vdb: 472 КиБ, 483328 байт, 944 секторов
Единицы: секторов по 1 * 512 = 512 байт
Размер сектора (логический/физический): 512 байт / 512 байт
Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт

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



********************************************************************************

Добро пожаловать в одношаговое приложение DigitalOcean Discourse

При первом входе вам будет предложено настроить установку Discourse.

Все скрипты и файлы Discourse можно найти в /var/discourse, а утилиту настройки
можно запустить снова, выполнив команду discourse-setup в этой директории.

За помощью и дополнительной информацией обращайтесь на https://do.co/3dmapBw

********************************************************************************
Чтобы удалить это сообщение дня: rm -rf /etc/update-motd.d/99-one-click
Последний вход: Sun Jul 14 23:46:42 2024 с xxx.xxx.xxxx
root@xxxxxxx:~# cd /var/discourse
root@xxxxxxx:/var/discourse# ./launcher rebuild app
Архитектура x86_64 обнаружена.
Проверка актуальности лаунчера
Получение origin
Лаунчер актуален
Остановка старого контейнера
+ /usr/bin/docker stop -t 600 app
app
2.0.20240708-0023: Получение образа из discourse/base
Хеш-сумма: sha256:025e9c1f6848c4726544c6ae873d710c62f547b72afb7f537aaa44eb5377cb5c
Статус: Образ актуален для discourse/base:2.0.20240708-0023
docker.io/discourse/base:2.0.20240708-0023
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups.rb
/usr/local/bin/pups --stdin
I, [2024-07-15T00:40:19.347084 #1]  INFO -- : Чтение из stdin
/usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `merge': неявное преобразование String в Hash (TypeError)

      first.merge(second, \u0026merger)
                  ^^^^^^^^^^^^^^^
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/merge_command.rb:50:in `deep_merge'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:61:in `block in run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `each'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/lib/pups/cli.rb:57:in `run'
	from /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.2.1/bin/pups:9:in `\u003ctop (required)\u003e'
	from /usr/local/bin/pups:25:in `load'
	from /usr/local/bin/pups:25:in `\u003cmain\u003e'
Загрузка не удалась с кодом выхода 1
** НЕ УДАЛОСЬ ЗАГРУЗИТЬСЯ ** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках, их может быть несколько.
./discourse-doctor может помочь диагностировать проблему.
22325d070d60382ffc6f404d14ee2be77c418596cb35edd4c967ffcbef5754eb
root@xxxxxx:/var/discourse# cd ..
root@xxxxxx:/var# cd ..
root@xxxxxx:/# cd /var/discourse
nano containers/app.yml

  GNU nano 6.2                                                   containers/app.yml                                                             
es## это шаблон контейнера Docker Discourse «всё в одном», автономный
##
## После внесения изменений в этот файл вы ДОЛЖНЫ выполнить пересборку
## /var/discourse/launcher rebuild app
##
## БУДЬТЕ *ОЧЕНЬ* ОСТОРОЖНЫ ПРИ РЕДАКТИРОВАНИИ!
## YAML-ФАЙЛЫ ЧРЕЗВЫЧАЙНО ЧУВСТВИТЕЛЬНЫ К ОШИБКАМ В ПРОБЕЛАХ ИЛИ ВЫРАВНИВАНИИ!
## Посетите http://www.yamllint.com/, чтобы проверить этот файл при необходимости

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/web.template.yml"
  ## Раскомментируйте следующую строку, чтобы включить прослушивание IPv6
  #- "templates/web.ipv6.template.yml"
  - "templates/web.ratelimited.template.yml"
  ## Раскомментируйте эти две строки, если хотите добавить Lets Encrypt (https)
  - "templates/web.ssl.template.yml"
  - "templates/web.letsencrypt.ssl.template.yml"

## какие TCP/IP-порты должен открывать этот контейнер?
## Если вы хотите, чтобы Discourse использовал порт совместно с другим веб-сервером, например Apache или nginx,
## см. https://meta.discourse.org/t/17247 для деталей
expose:
  - "80:80"   # http

Такой способ установки здесь не поддерживается. Вместо этого необходимо использовать базовый VPS и следовать стандартному процессу установки.

Разве это не просто стандартная установка «под капотом»?

Какие новые плагины вы установили?

На первый взгляд, стоит закомментировать плагин “procourse”. Он последний в списке.

https://github.com/procourse/procourse-static-pages.git

Оригинальный плагин больше не поддерживается. Существует форк.

Тем не менее, он может снова не работать из-за изменений в ядре.


Установка плагинов — это немного утомительно. Но добавляйте по одному, затем пересобирайте, проверяйте, успешна ли пересборка и работает ли сайт. Только после этого переходите к установке следующего плагина.

Честно говоря, я не знаю, но эти недавние посты заставили меня насторожиться.

Сначала я бы отключил плагины procourse и pavilion.

Спасибо всем. Я просто отказался от установки Digital Ocean, так как она не поддерживается. Затем я последовал стандартному пути установки, который задокументирован и поддерживается сообществом, но моя новая проблема заключается в том, что письмо с первичной активацией НЕ отправляется. Как-то странно.