Не удалось установить Discourse через Docker

Я заполнил файл app.yml и использую эту команду для пересборки образа:

sudo ./launcher rebuild app

Однако я столкнулся с этой проблемой и не знаю, как с ней справиться…

I, [2021-07-07T01:28:34.484614 #1]  INFO -- : 
I, [2021-07-07T01:28:34.484941 #1]  INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
** ОШИБКА ПЛАГИНА **

Сборка Discourse невозможна из-за следующей ошибки при инициализации плагина:

uninitialized constant Onebox

/var/www/discourse/plugins/google_docs_onebox/plugin.rb:6:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:629:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:629:in `activate!'
lib/discourse.rb:240:in `block in activate_plugins!'
lib/discourse.rb:237:in `each'
lib/discourse.rb:237:in `activate_plugins!'
/var/www/discourse/config/application.rb:313:in `block in <class:Application>'
/var/www/discourse/lib/plugin_initialization_guard.rb:5:in `plugin_initialization_guard'
/var/www/discourse/config/application.rb:312:in `<class:Application>'
/var/www/discourse/config/application.rb:73:in `<module:Discourse>'
/var/www/discourse/config/application.rb:72:in `<top (required)>'
/var/www/discourse/Rakefile:7:in `require'
/var/www/discourse/Rakefile:7:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/lib/rake/rake_module.rb:29:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/lib/rake/rake_module.rb:29:in `load_rakefile'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/lib/rake/application.rb:710:in `raw_load_rakefile'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/lib/rake/application.rb:104:in `block in load_rakefile'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/lib/rake/application.rb:186:in `standard_exception_handling'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/lib/rake/application.rb:103:in `load_rakefile'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/lib/rake/application.rb:82:in `block in run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/lib/rake/application.rb:186:in `standard_exception_handling'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/lib/rake/application.rb:80:in `run'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/rake-13.0.4/exe/rake:27:in `<top (required)>'
/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/rake:23:in `load'
/var/www/discourse/vendor/bundle/ruby/2.7.0/bin/rake:23:in `<top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/cli/exec.rb:63:in `load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/cli/exec.rb:63:in `kernel_load'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/cli/exec.rb:28:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/cli.rb:474:in `exec'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/vendor/thor/lib/thor/invocation.rb:127:in `invoke_command'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/vendor/thor/lib/thor.rb:392:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/cli.rb:30:in `dispatch'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/vendor/thor/lib/thor/base.rb:485:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/cli.rb:24:in `start'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/exe/bundle:49:in `block in <top (required)>'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/lib/bundler/friendly_errors.rb:130:in `with_friendly_errors'
/usr/local/lib/ruby/gems/2.7.0/gems/bundler-2.2.19/exe/bundle:37:in `<top (required)>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
I, [2021-07-07T01:28:35.629849 #1]  INFO -- : 
I, [2021-07-07T01:28:35.674810 #1]  INFO -- : Завершение асинхронных процессов
I, [2021-07-07T01:28:35.674950 #1]  INFO -- : Отправка сигнала INT процессу HOME=/var/lib/postgresql USER=postgres exec chpst -u postgres:postgres:ssl-cert -U postgres:postgres:ssl-cert /usr/lib/postgresql/13/bin/postmaster -D /etc/postgresql/13/main pid: 70
I, [2021-07-07T01:28:35.675020 #1]  INFO -- : Отправка сигнала TERM процессу exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 187
2021-07-07 01:28:35.675 UTC [70] LOG:  получен запрос на быстрое завершение работы
187:signal-handler (1625621315) Получен сигнал SIGTERM, планирование завершения работы...
187:M 07 Jul 2021 01:28:35.675 # Пользователь запросил завершение работы...
187:M 07 Jul 2021 01:28:35.675 * Сохранение финального снимка RDB перед выходом.
2021-07-07 01:28:35.742 UTC [70] LOG:  отмена всех активных транзакций
187:M 07 Jul 2021 01:28:35.742 * База данных сохранена на диск
187:M 07 Jul 2021 01:28:35.742 # Redis готов к выходу, до свидания...
2021-07-07 01:28:35.745 UTC [70] LOG:  фоновый рабочий "logical replication launcher" (PID 79) завершился с кодом выхода 1
2021-07-07 01:28:35.747 UTC [74] LOG:  завершение работы
2021-07-07 01:28:36.300 UTC [70] LOG:  система баз данных завершена


ОШИБКА
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' завершилась с ошибкой, код возврата #<Process::Status: pid 3841 exit 1>
Место возникновения ошибки: /pups/lib/pups/exec_command.rb:112:in `spawn'
Выполнение команды не удалось с параметрами {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
1eaf7abdf201a825d63cd5c85f3e2217f718c135926b71519cda2050340da3d5
** НЕ УДАЛОСЬ ЗАПУСТИТЬ ** пожалуйста, прокрутите вверх и поищите сообщения об ошибках, их может быть несколько.
Утилита ./discourse-doctor может помочь в диагностике проблемы.

Вот полный лог:
Note.txt (75.4 KB)

Дело в том, что я не понимаю, почему не могу добавить плагин в файл app.yml.

В моем файле app.yml секция плагинов выглядит так:

## Plugins go here
## see https://meta.discourse.org/t/19157 for details
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-solved.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-checklist.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-whos-online.git
          - sudo -E -u discourse git clone https://github.com/gdpelican/babble.git
          - sudo -E -u discourse git clone https://github.com/kasperpeulen/discourse-mathjax.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-tooltips.git
          - sudo -E -u discourse git clone https://github.com/paviliondev/discourse-topic-previews.git
          - sudo -E -u discourse git clone https://github.com/naveed-ahmad/google_docs_onebox.git

Кажется, возникает проблема с отсутствием прав доступа…
Есть ли способ решить эту проблему?
Спасибо!!

Скорее всего, google_docs_onebox не работает, просто удалите эту строку из app.yml?

Источник этого гема не обновлялся 6 лет. В документации прямо указано:

этот плагин был объединён в официальный гем Onebox. Поэтому, если вы используете последнюю версию, устанавливать его не нужно.

Таким образом, вам необходимо удалить эту запись.

Понял!!
Спасибо @Benjamin_D и @Andrew Schleifer!!

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

- sudo -E -u discourse git clone https://github.com/discourse/discourse-solved.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-checklist.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-whos-online.git
          - sudo -E -u discourse git clone https://github.com/gdpelican/babble.git
          - sudo -E -u discourse git clone https://github.com/kasperpeulen/discourse-mathjax.git
          - sudo -E -u discourse git clone https://github.com/discourse/discourse-tooltips.git
          - sudo -E -u discourse git clone https://github.com/paviliondev/discourse-topic-previews.git
          - sudo -E -u discourse

Спасибо за вашу помощь!!

С уважением,
Чие