Привет.
Я пытаюсь разработать плагин this и столкнулся с проблемами внешних зависимостей.
Моя зависимость указана в plugin.rb с помощью gem 'omniauth-telegram', '0.2.1', что, как я полагаю, является рекомендуемым способом подключения зависимостей? Я добавляю её в контейнер Docker следующим образом:
hooks:
after_code:
- exec:
cd: $home/plugins
cmd:
- git clone https://github.com/mjsir911/discourse-telegram-auth.git
Это приводит к следующей ошибке:
I, [2022-09-21T07:17:21.579540 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'LOAD_PLUGINS=0 bundle exec rake plugin:pull_compatible_all'
I, [2022-09-21T07:17:22.713904 #1] INFO -- : discourse-telegram-auth уже находится в последней совместимой версии
docker_manager уже находится в последней совместимой версии
I, [2022-09-21T07:17:22.714304 #1] INFO -- : > cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate'
rake aborted!
LoadError: невозможно загрузить файл -- omniauth-telegram
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:17:in `require'
/var/www/discourse/vendor/bundle/ruby/2.7.0/gems/zeitwerk-2.6.0/lib/zeitwerk/kernel.rb:35:in `require'
/var/www/discourse/lib/plugin_gem.rb:30:in `load'
/var/www/discourse/lib/plugin/instance.rb:776:in `gem'
/var/www/discourse/plugins/discourse-telegram-auth/plugin.rb:9:in `activate!'
/var/www/discourse/lib/plugin/instance.rb:670:in `instance_eval'
/var/www/discourse/lib/plugin/instance.rb:670:in `activate!'
/var/www/discourse/lib/discourse.rb:314:in `block in activate_plugins!'
/var/www/discourse/lib/discourse.rb:311:in `each'
/var/www/discourse/lib/discourse.rb:311:in `activate_plugins!'
/var/www/discourse/config/application.rb:228:in `block in <class:Application>'
/var/www/discourse/lib/plugin.rb:6:in `initialization_guard'
/var/www/discourse/config/application.rb:227:in `<class:Application>'
/var/www/discourse/config/application.rb:81:in `<module:Discourse>'
/var/www/discourse/config/application.rb:80: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.6/exe/rake:27:in `<top (required)>'
/usr/local/bin/bundle:25:in `load'
/usr/local/bin/bundle:25:in `<main>'
(Полный трассировочный вывод можно получить, запустив задачу с флагом --trace)
I, [2022-09-21T07:17:23.851899 #1] INFO -- : gem install omniauth-telegram -v 0.2.1 -i /var/www/discourse/plugins/discourse-telegram-auth/gems/2.7.6 --no-document --ignore-dependencies --no-user-install
Успешно установлен omniauth-telegram-0.2.1
Установлено 1 gem
I, [2022-09-21T07:17:23.852119 #1] INFO -- : Завершение асинхронных процессов
I, [2022-09-21T07:17:23.852174 #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: 57
I, [2022-09-21T07:17:23.852234 #1] INFO -- : Отправка TERM для exec chpst -u redis -U redis /usr/bin/redis-server /etc/redis/redis.conf pid: 118
118:signal-handler (1663744643) Получен SIGTERM, планирование завершения работы...
2022-09-21 07:17:23.852 UTC [57] LOG: получен запрос быстрого завершения работы
2022-09-21 07:17:23.855 UTC [57] LOG: прерывание всех активных транзакций
2022-09-21 07:17:23.860 UTC [57] LOG: фоновый рабочий "запуск логической репликации" (PID 66) завершился с кодом выхода 1
2022-09-21 07:17:23.860 UTC [61] LOG: завершение работы
2022-09-21 07:17:23.878 UTC [57] LOG: система баз данных завершена
118:M 21 Sep 2022 07:17:23.936 # Пользователь запросил завершение работы...
118:M 21 Sep 2022 07:17:23.936 * Сохранение финального снимка RDB перед выходом.
118:M 21 Sep 2022 07:17:23.937 * База данных сохранена на диск
118:M 21 Sep 2022 07:17:23.937 # Redis готов к выходу, до свидания...
FAILED
--------------------
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' завершилась с ошибкой с кодом возврата #<Process::Status: pid 1212 exit 1>
Место возникновения ошибки: /usr/local/lib/ruby/gems/2.7.0/gems/pups-1.1.1/lib/pups/exec_command.rb:117:in `spawn'
exec завершилась с ошибкой с параметрами {"cd"=>"$home", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
Загрузка не удалась с кодом выхода 1
** НЕ УДАЛОСЬ ЗАГРУЗИТЬСЯ ** пожалуйста, прокрутите вверх и найдите сообщения об ошибках, возможно, их больше одного.
./discourse-doctor может помочь диагностировать проблему.
Связанные обсуждения, где предложенные решения мне не подходят: