# Пытался установить плагин, сайт сломался, не могу запустить rebuild

**URL:** https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913
**Category:** Self-hosting
**Created:** [16.Июль.2020 08:10:38 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913 "2020-07-16T08:10:38Z")
**Posts on this page:** 12
**Page:** 1

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [16.Июль.2020 08:10:38 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/1 "2020-07-16T08:10:38Z")

</div>

Я пытался установить плагин форматирования, но по ошибке поместил код не в то место. После пересборки и загрузки сайта плагин не инициализировался. Я понял свою ошибку, удалил код… но система сообщила об ошибке в одной из строк. Я нашел ошибку, проверил файл через yamllint — всё совпало, удалил плагин… но теперь пересборка не работает. Система постоянно выдает одну и ту же ошибку. При этом главная страница сайта загружается, но открыть какие-либо темы или другие разделы невозможно.

Вот вывод команд пересборки и утилиты doctor:

> **Сводка**
>
> ```
> FAILED
> --------------------
> NoMethodError: undefined method `each' for nil:NilClass
> Location of failure: /pups/lib/pups/config.rb:99:in `run_commands'
> dfd33a9a3be65ddb9a1fd19c19e5034a44c39f46e330ccdf0533f4f66d7d0005
> **FAILED TO BOOTSTRAP** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках — их может быть несколько.
> ./discourse-doctor может помочь в диагностике проблемы.
> root:/var/discourse# ./discourse-doctor
> DISCOURSE DOCTOR Thu Jul 16 07:53:05 UTC 2020
> OS: Linux itsbx 4.15.0-99-generic #100-Ubuntu SMP Wed Apr 22 20:32:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
> 
> ==================== SERIOUS PROBLEM!!!! ====================
> app not running!
> Attempting to rebuild
> ==================== REBUILD LOG ====================
> Ensuring launcher is up to date
> Fetching origin
> Launcher is up-to-date
> Stopping old container
> + /usr/bin/docker stop -t 60 app
> app
> cd /pups && git pull && /pups/bin/pups --stdin
> Already up to date.
> I, [2020-07-16T07:53:23.985444 #1] INFO -- : Loading --stdin
> 
> FAILED
> --------------------
> NoMethodError: undefined method `each' for nil:NilClass
> Location of failure: /pups/lib/pups/config.rb:99:in `run_commands'
> 2386f66f76d9c9ffbbcd02bfad9e0530683714d433bff8d70976cae6c4b8fc86
> **FAILED TO BOOTSTRAP** пожалуйста, прокрутите вверх и поищите более ранние сообщения об ошибках — их может быть несколько.
> ./discourse-doctor может помочь в диагностике проблемы.
> ==================== END REBUILD LOG ====================
> Failed to rebuild app.
> 
> Checking your domain name . . .
> 
> Connection to yoursite succeeded.
> You should probably remove any non-standard plugins and rebuild.
> Attempting to restart existing container. . .
> 
> starting up existing container
> + /usr/bin/docker start app
> Error response from daemon: driver failed programming external connectivity on endpoint app (39c7d5a80e10058bc952825fccd073af0f2ff12857895aa1046a6615d879a5a0): Error starting userland proxy: listen tcp 0.0.0.0:443: bind: address already in use
> Error: failed to start containers: app
> Failed to restart the container.
> 
> ==================== PLUGINS ====================
> - git clone github.com/discourse/docker_manager.git
> 
> No non-official plugins detected.
> 
> See thub.com/discourse/discourse/blob/master/lib/plugin/metadata.rb for the official list.
> 
> ========================================
> **Discourse version at myhost: NOT FOUND**
> **Discourse version at localhost: NOT FOUND**
> 
> ==================== MEMORY INFORMATION ====================
> RAM (MB): 2041
> 
> total used free shared buff/cache available
> Mem: 1993 144 1237 0 611 1677
> Swap: 2047 76 1971
> 
> ==================== DISK SPACE CHECK ====================
> ---------- OS Disk Space ----------
> Filesystem Size Used Avail Use% Mounted on
> /dev/vda1 49G 11G 38G 22% /
> 
> ==================== DISK INFORMATION ====================
> Disk /dev/vda: 50 GiB, 53687091200 bytes, 104857600 sectors
> Units: sectors of 1 * 512 = 512 bytes
> Sector size (logical/physical): 512 bytes / 512 bytes
> I/O size (minimum/optimal): 512 bytes / 512 bytes
> Disklabel type: gpt
> Disk identifier: 3980448C-AF15-4833-A022-C759F0D2D80A
> 
> Device Start End Sectors Size Type
> /dev/vda1 227328 104857566 104630239 49.9G Linux filesystem
> /dev/vda14 2048 10239 8192 4M BIOS boot
> /dev/vda15 10240 227327 217088 106M Microsoft basic data
> 
> Partition table entries are not in disk order.
> 
> ==================== END DISK INFORMATION ====================
> 
> ```

Я совершенно не знаю, что делать, но сейчас сайт полностью неработоспособен. Я удалил ссылки, потому что в одном посте можно использовать только три, но они всё ещё там были. Пересборки работали нормально ДО тех пор, пока я не удалил плагин, который по ошибке поместил в совершенно неправильное место. После этого всё перестало работать. Было несколько строк с ошибками, но я подтвердил, что исправил их. Я в полнейшем замешательстве. Я только что попытался снова запустить setup и проверить все настройки — всё прошло успешно, но при пересборке снова возникла ошибка…

---

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [16.Июль.2020 09:22:28 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/2 "2020-07-16T09:22:28Z")

</div>

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

./launcher start app, и всё запустилось нормально, плагин установлен (хотя я думал, что удалил его?). В общем, неважно. Однако теперь я боюсь пробовать пересборку или устанавливать что-то ещё, так как не знаю, что именно вызвало эту проблему, или даже что было исправлено. Так что любая подсказка всё ещё будет оценена по достоинству.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [16.Июль.2020 13:56:13 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/3 "2020-07-16T13:56:13Z")

</div>

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

---

<div class="post-metadata">

### Author: ![itsbhanusharma](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/itsbhanusharma/32/180717_2.png) [@itsbhanusharma](https://meta.discourse.org/u/itsbhanusharma)
#### Post date: [16.Июль.2020 14:39:17 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/4 "2020-07-16T14:39:17Z")

</div>

Он, наверное, просто запустил старый образ командой `./launcher start app`.

@Kartoon, ты, скорее всего, можешь попробовать пересобрать. Если это не сработает, ты всё ещё сможешь восстановить последний известный рабочий образ через ту же команду.

---

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [23.Июль.2020 22:11:39 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/5 "2020-07-23T22:11:39Z")

</div>

Извините, у меня возникли неотложные дела, и я не мог проверить эту тему.

Пересборка НЕ удалась, и я попробовал снова сегодня — тоже безрезультатно. Сайт работает нормально после запуска “./launcher start app”, но при любой попытке пересобрать его процесс завершается ошибкой, как и проверки через discourse doctor. Если нужно, я могу выложить лог, который он выдаёт, но очевидно, что что-то всё ещё не так, и я беспокоюсь, что это может привести к проблемам в будущем.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [23.Июль.2020 22:14:44 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/6 "2020-07-23T22:14:44Z")

</div>

> [@Kartoon](#):
>
> Пересборка НЕ сработала,

Похоже, в вашем файле yml есть ошибка форматирования.

Такие ошибки бывает трудно найти и распознать. Существуют инструменты, которые их проверяют.

Что я обычно делаю при добавлении плагина: копирую строку существующего плагина и редактирую ссылку на GitHub. Так вы минимизируете вероятность того, что что-то сломаете.

---

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [23.Июль.2020 22:54:16 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/7 "2020-07-23T22:54:16Z")

</div>

Я так и предполагал, и сначала это было неверно, но я обратился к [http://www.yamllint.com/](http://www.yamllint.com/), чтобы исправить ошибки, возникшие из-за того, что я изначально разместил текст плагина в неправильных местах. После проверки сайт показывает, что всё в порядке. Я многократно проверял это в процессе (как отдельные части, так и весь файл), и сайт подтверждал, что всё верно. Если только этот сайт не содержит ошибок по какой-то причине, что, насколько я знаю, возможно, так как я не слишком хорошо разбираюсь в этом.

---

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [23.Июль.2020 23:02:03 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/8 "2020-07-23T23:02:03Z")

</div>

Вот что я получаю при попытке пересборки, а ниже — результат запуска discourse doctor (оба действия выполнены пять минут назад). Я удалил личную информацию, но в реальном логе всё на месте и корректно.

> **пересборка приложения**
>
> Проверка актуальности лаунчера  
> Получение origin  
> Лаунчер актуален  
> Остановка старого контейнера
> 
> - /usr/bin/docker stop -t 60 app  
> app  
> cd /pups && git pull && /pups/bin/pups --stdin  
> Уже обновлено.  
> I, [2020-07-23T22:58:14.812604 #1] INFO – : Загрузка --stdin
> 
> ## ОШИБКА
> 
> NoMethodError: метод `each` не определен для nil:NilClass  
> Место ошибки: /pups/lib/pups/config.rb:99:in `run\_commands’  
> 1a575aa2a169fcb4a9bbb0874c55d3fd01ee1e7368ff58e2099c9602f6c32109  
> \*\* СБОЙ ПРИ ИНИЦИАЛИЗАЦИИ \*\* Пожалуйста, прокрутите вверх и найдите предыдущие сообщения об ошибках; их может быть несколько.  
> Утилита ./discourse-doctor может помочь в диагностике проблемы.

> **discourse-doctor**
>
> DISCOURSE DOCTOR Чт Июл 23 22:59:22 UTC 2020  
> ОС: Linux itsbx 4.15.0-111-generic #112-Ubuntu SMP Чт Июл 9 20:32:34 UTC 2020 x86\_64 x86\_64 x86\_64 GNU/Linux
> 
> Найден containers/app.yml
> 
> ==================== НАСТРОЙКИ YML ====================  
> DISCOURSE\_HOSTNAME=хорошо  
> SMTP\_ADDRESS=хорошо  
> DEVELOPER\_EMAILS=хорошо  
> SMTP\_PASSWORD=хорошо  
> SMTP\_PORT=587  
> SMTP\_USER\_NAME=хорошо  
> LETSENCRYPT\_ACCOUNT\_EMAIL=хорошо
> 
> ==================== ИНФОРМАЦИЯ DOCKER ====================  
> ВЕРСИЯ DOCKER: Docker version 19.03.8, build afacb8b7f0
> 
> ПРОЦЕССЫ DOCKER (docker ps -a)
> 
> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES  
> 343a1aa3c05c local\_discourse/app “/sbin/boot” 7 дней назад Завершён (5) около минуты назад app
> 
> ==================== СЕРЬЁЗНАЯ ПРОБЛЕМА!!! ====================  
> Приложение app не запущено!  
> Попытка пересборки  
> ==================== ЖУРНАЛ ПЕРЕСБОРКИ ====================  
> Проверка актуальности лаунчера  
> Получение origin  
> Лаунчер актуален  
> Остановка старого контейнера
> 
> - /usr/bin/docker stop -t 60 app  
> app  
> cd /pups && git pull && /pups/bin/pups --stdin  
> Уже обновлено.  
> I, [2020-07-23T22:59:41.894064 #1] INFO – : Загрузка --stdin
> 
> ## ОШИБКА
> 
> NoMethodError: метод `each` не определен для nil:NilClass  
> Место ошибки: /pups/lib/pups/config.rb:99:in `run\_commands’  
> 439734a2cd69755d8351bbdadd9756cb573577d7f1b306aedaafa1c7d4bc29cf  
> \*\* СБОЙ ПРИ ИНИЦИАЛИЗАЦИИ \*\* Пожалуйста, прокрутите вверх и найдите предыдущие сообщения об ошибках; их может быть несколько.  
> Утилита ./discourse-doctor может помочь в диагностике проблемы.  
> ==================== КОНЕЦ ЖУРНАЛА ПЕРЕСБОРКИ ====================  
> Не удалось пересобрать приложение.
> 
> Проверка вашего доменного имени . . .
> 
> Соединение с сайтом успешно.  
> Возможно, вам стоит удалить любые нестандартные плагины и выполнить пересборку.  
> Попытка перезапуска существующего контейнера . . .
> 
> запуск существующего контейнера
> 
> - /usr/bin/docker start app  
> Ошибка ответа от демона: сбой драйвера при программировании внешней связности для конечной точки app (100c15324a128a2b007d8b89e29fe0f455585fd8c7d99855ef87bb4f17892b4b): Ошибка запуска пользовательского прокси: listen tcp 0.0.0.0:443: bind: адрес уже используется  
> Ошибка: не удалось запустить контейнеры: app  
> Не удалось перезапустить контейнер.
> 
> ==================== ПЛАГИНЫ ====================  
> - git clone [GitHub - discourse/docker\_manager: Plugin for use with discourse docker image · GitHub](https://github.com/discourse/docker_manager.git)
> 
> Нестандартные плагины не обнаружены.
> 
> См. официальный список здесь: [discourse/lib/plugin/metadata.rb at main · discourse/discourse · GitHub](https://github.com/discourse/discourse/blob/master/lib/plugin/metadata.rb)
> 
> ========================================  
> **Версия Discourse на сайте: НЕ НАЙДЕНА**  
> **Версия Discourse на localhost: НЕ НАЙДЕНА**
> 
> ==================== ИНФОРМАЦИЯ О ПАМЯТИ ====================  
> ОЗУ (МБ): 2041
> 
> ```
> total used free shared buff/cache available
> 
> ```
> 
> Mem: 1993 140 1310 0 542 1695  
> Swap: 2047 72 1975
> 
> ==================== ПРОВЕРКА СВОБОДНОГО МЕСТА НА ДИСКЕ ====================  
> ---------- Место на диске ОС ----------  
> Filesystem Size Used Avail Use% Mounted on  
> /dev/vda1 49G 13G 37G 26% /
> 
> ==================== ИНФОРМАЦИЯ О ДИСКЕ ====================  
> Диск /dev/vda: 50 ГиБ, 53687091200 байт, 104857600 секторов  
> Единицы: секторы по 1 \* 512 = 512 байт  
> Размер сектора (логический/физический): 512 байт / 512 байт  
> Размер ввода-вывода (минимальный/оптимальный): 512 байт / 512 байт  
> Тип метки диска: gpt  
> Идентификатор диска: 3980448C-AF15-4833-A022-C759F0D2D80A
> 
> Device Start End Sectors Size Type  
> /dev/vda1 227328 104857566 104630239 49.9G Linux filesystem  
> /dev/vda14 2048 10239 8192 4M BIOS boot  
> /dev/vda15 10240 227327 217088 106M Microsoft basic data
> 
> Записи таблицы разделов не расположены в порядке на диске.
> 
> ==================== КОНЕЦ ИНФОРМАЦИИ О ДИСКЕ ====================

Первое, что я сразу заметил, — сообщение «серьёзная проблема, приложение app не запущено». Также указано «версия Discourse на сайте и на localhost не найдена». Мое (некомпетентное) предположение: что бы это ни значило, именно в этом проблема.

Кроме того, при запуске пересборки мой сайт прямо сейчас упал, и мне пришлось выполнить «start app», чтобы снова запустить его.

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [23.Июль.2020 23:08:30 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/9 "2020-07-23T23:08:30Z")

</div>

Хм. Ну, похоже, это не проблема форматирования, но я не могу сказать, что это может быть.

---

<div class="post-metadata">

### Author: ![Steven](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/steven/32/187890_2.png) [@Steven](https://meta.discourse.org/u/Steven)
#### Post date: [23.Июль.2020 23:53:52 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/10 "2020-07-23T23:53:52Z")

</div>

Если файл app.yml вызывает опасения, лучше всего начать заново с чистого файла app.yml:

```plaintext
rm /var/discourse/containers/app.yml
cd /var/discourse
cp samples/standalone.yml containers/app.yml
nano containers/app.yml

```

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

---

<div class="post-metadata">

### Author: ![Kartoon](https://avatars.discourse-cdn.com/v4/letter/k/e36b37/32.png) [@Kartoon](https://meta.discourse.org/u/Kartoon)
#### Post date: [03.Август.2020 05:59:53 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/11 "2020-08-03T05:59:53Z")

</div>

Это сработало идеально. Очевидно, что когда система сообщала, что YAML-файл верный… он был неверным.

Затем у меня возникла временная проблема с отправкой писем, но, когда я перепроверил новый YAML-файл, понял, что ошибся в адресе электронной почты (я всегда забываю, что установил его как @mg. в Mailgun), поэтому это было исправлено в течение пяти минут.

Ох, огромное спасибо! Теперь у меня нет страха, что всё рухнет в любой момент.

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [02.Сентябрь.2020 06:00:00 UTC](https://meta.discourse.org/t/tried-to-install-plugin-destroyed-site-cant-run-rebuild/157913/12 "2020-09-02T06:00:00Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.
