Пересборка контейнера постоянно завершается ошибкой после следования стандартным инструкциям по установке плагина

Мы используем стандартную установку Discourse на DigitalOcean. Всё было в порядке, затем мы решили добавить один плагин, следуя этой инструкции:

Добавив строку:

hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git && sudo -E -u discourse git clone https://github.com/discourse/discourse-templates.git

контейнер не может быть пересобран.

FAILED
--------------------
Pups::ExecError: echo "End of custom commands failed with return #<Process::Status: pid 5121 exit 2>
Location of failure: /usr/local/lib/ruby/gems/3.2.0/gems/pups-1.2.1/lib/pups/exec_command.rb:132:in `spawn'
exec failed with the params "echo \"End of custom commands"
bootstrap failed with exit code 2

Все команды были выполнены от имени root. Я думаю, что проблема именно в этом.

I, [2024-04-18T04:28:49.985355 #1]  INFO -- : > cd /var/www/discourse/plugins && sudo -E -u discourse git clone https://github.com/discourse/docker_manager.git && sudo -E -u discourse git clone https://github.com/discourse/discourse-templates.git
Cloning into 'docker_manager'...
warning: unable to access '/root/.config/git/attributes': Permission denied
Cloning into 'discourse-templates'...
warning: unable to access '/root/.config/git/attributes': Permission denied

Пожалуйста, дайте совет.

Попробуйте без этого.

У меня просто - git clone ...

… и это работает уже много лет!

Сообщается об отказе в доступе. Вы уверены, что запускаете от имени root?

Я следую руководству по установке, опубликованному здесь как официальное руководство по установке плагинов Discourse. Все плагины имеют ссылку на это руководство. В моём случае это уничтожило нашу установку, и мы даже не смогли её восстановить, пришлось пересоздавать её даже с исходными настройками YAML.

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

Неудачная сборка не должна ничего уничтожать, она лишь ненадолго выведет вас из строя.

База данных останется нетронутой.

Запустит ли

 ./launcher start app

форум?

Мое предположение — вы вставили табуляцию или что-то ещё, что делает файл YAML недопустимым.

Ошибка касается команды “echo” в самом конце файла YAML, что указывает на проблему с форматированием где-то до неё.

Вы сохранили копию файла перед редактированием или пытались отредактировать его, чтобы восстановить состояние, которое, по вашему мнению, было до изменений?

Вы можете попробовать переименовать ваш app.yml, записать значения (особенно настройки SMTP) и снова запустить ./discourse-setup. Это создаст рабочий файл app.yml.

это запускает форум.

Будет ли сохранены существующие данные форума при запуске ./discourse-setup, или мне сначала сделать резервную копию и восстановить её? Большое спасибо за поддержку.

Да. Существующая база данных и прочее останутся на месте. Это просто способ создать новый app.yml.

Уважаемые @pfaffman и @merefield, благодарим вас за поддержку.

Было две проблемы:

  1. Критическая — ошибка в синтаксисе YML, исправлена валидатором YML.
  2. Менее критическая — замена команды sudo -E -u discourse на простое git clone (под root).

Это помогло нам пересобрать и установить плагин.

Огромное спасибо!