Однако у меня возникли проблемы с созданием резервной копии из раздела администратора.
Получаю следующую ошибку: pg_dump: error: connection to database "discourse development" failed: FATAL: Peer authentication failed for user "postgres".
Я проверил файл pg_hba.conf и установил все опции в режим trust.
Буду очень признателен за помощь в том, как заставить это работать.
Я пробовал как на Ubuntu, так и на MacOSX. Всё работает отлично на обеих системах (создание постов, API и т.д.), за исключением функции резервного копирования.
LOAD_PLUGINS и RAILS_ENV должны предшествовать команде для назначения переменных окружения. После команды они воспринимаются как аргументы для rspec, который их не понимает.
Извините, я неправильно истолковал ваши две команды как «первая работает для этой спецификации, вторая не работает для этой спецификации». У меня не настроена среда разработки для тестирования.
Посмотрев на файл rspec на GitHub, я думаю, что вы правы: переменные окружения не передаются. Однако, похоже, вы можете выполнить d/shell, чтобы получить доступ к оболочке внутри контейнера, а затем запустить там свою команду rspec.
OCI runtime exec failed: exec failed: container_linux.go:380: starting container process caused: exec: "LOAD_PLUGINS=1": executable file not found in $PATH: unknown
Ах, похоже, переменные окружения нельзя использовать с docker exec таким образом. Ничего страшного, по крайней мере, сначала открыть оболочку работает.
У меня точно такая же проблема, как у Макса. Всякий раз, когда я пытаюсь создать резервную копию или восстановить данные в локальной среде разработки Docker, возникает одна и та же ошибка: Peer authentication failed for user "postgres".
После некоторого исследования я обнаружил, что в среде разработки конфигурация базы данных отображается следующим образом:
Каким-то образом в среде разработки переменная окружения для имени пользователя не устанавливается, и модуль BackupRestore по умолчанию использует значение postgres.
Мы успешно установили gem: d/exec sudo gem install discourse_theme … теперь задача состоит в том, чтобы создать символическую ссылку на локальную тему …
@Simon_Manning обратите внимание на использование sudo для обхода проблем с разрешениями (спасибо за напоминание @fzngagan)
Я пытаюсь протестировать плагин с помощью настройки Docker. Случайно приложение перестает загружаться, и я вижу только пустую страницу, пока не удалю папку с данными и не пересоберу всё заново. Есть какие-то советы по отладке этой проблемы?
Я перешёл с локального Mac на виртуальную машину с Ubuntu, надеясь, что это упростит запуск, но, к сожалению, пока ничего не вышло.
Уже столкнулся с какими-то странными проблемами с правами доступа на ранних этапах. d/bundle install сообщает, что для установки некоторых компонентов нужны права sudo, d/rails s также выдаёт ошибки прав доступа.
Traceback (most recent call last):
8: from /src/bin/unicorn:70:in `<main>'
7: from /src/bin/unicorn:38:in `ensure_cache_clean!'
6: from /usr/local/lib/ruby/2.7.0/fileutils.rb:211:in `mkdir_p'
5: from /usr/local/lib/ruby/2.7.0/fileutils.rb:211:in `each'
4: from /usr/local/lib/ruby/2.7.0/fileutils.rb:226:in `block in mkdir_p'
3: from /usr/local/lib/ruby/2.7.0/fileutils.rb:226:in `reverse_each'
2: from /usr/local/lib/ruby/2.7.0/fileutils.rb:228:in `block (2 levels) in mkdir_p'
1: from /usr/local/lib/ruby/2.7.0/fileutils.rb:250:in `fu_mkdir'
/usr/local/lib/ruby/2.7.0/fileutils.rb:250:in `mkdir': Permission denied @ dir_s_mkdir - /src/tmp (Errno::EACCES)
Есть какие-то идеи, что идёт не так? На этой машине ранее без проблем работал продакшн-инстанс Discourse. Я просто остановил и удалил эти контейнеры, а затем клонировал репозиторий для разработки в другую директорию. Запускаю всё через tmux, чтобы управлять разными сессиями оболочки.
единственное решение — перейти на мультиархитектурные образы с поддержкой arm64. Они также будут работать значительно быстрее и в целом надёжнее. Рекомендую проверить, какие базовые образы вы используете, и по возможности перейти на мультиархитектурные. На Docker Hub можно посмотреть, какие архитектуры поддерживаются каждым образом: […]
Готовы ли разработчики Discourse поддержать мультиархитектурный образ? Похоже, что базовый образ Discourse основан на debian:buster-slim, который уже поддерживает несколько архитектур, поэтому создание мультиархитектурного базового образа для Discourse не должно быть чрезмерно сложным. Однако это может означать, что команде придётся поддерживать ARM в продакшене. Кому-то (команде Discourse?) придётся запускать тесты Discourse как на x86_64, так и на ARM, исправлять возникающие проблемы и так далее.
Будет ли вообще приветствоваться PR в этом направлении?
(На мой взгляд, ARM — это архитектура будущего, даже в облачных средах.)
Не могу заставить это работать на openSUSE Leap 15. Предполагаю, что это не поддерживаемая ОС, хотя, раз мы используем Docker, это не должно иметь значения…
Migrating database...
rake aborted!
Errno::EACCES: Permission denied @ dir_s_mkdir - /src/app/assets/javascripts/plugins
/src/lib/plugin/instance.rb:441:in `ensure_directory'
/src/lib/plugin/instance.rb:713:in `activate!'
lib/discourse.rb:283:in `block in activate_plugins!'
lib/discourse.rb:280:in `each'
lib/discourse.rb:280:in `activate_plugins!'
/src/config/application.rb:318:in `block in <class:Application>'
/src/lib/plugin_initialization_guard.rb:5:in `plugin_initialization_guard'
/src/config/application.rb:317:in `<class:Application>'
/src/config/application.rb:73:in `<module:Discourse>'
/src/config/application.rb:72:in `<main>'
/src/Rakefile:7:in `<main>'
(See full trace by running task with --trace)
Пытался просто вручную создать «app/assets/javascripts/plugins», и это привело меня к следующему:
Migrating database...
rake aborted!
Errno::EACCES: Permission denied @ dir_s_mkdir - /src/tmp
lib/discourse.rb:94:in `atomic_write_file'
/src/lib/plugin/instance.rb:726:in `activate!'
lib/discourse.rb:283:in `block in activate_plugins!'
lib/discourse.rb:280:in `each'
lib/discourse.rb:280:in `activate_plugins!'
/src/config/application.rb:318:in `block in <class:Application>'
/src/lib/plugin_initialization_guard.rb:5:in `plugin_initialization_guard'
/src/config/application.rb:317:in `<class:Application>'
/src/config/application.rb:73:in `<module:Discourse>'
/src/config/application.rb:72:in `<main>'
/src/Rakefile:7:in `<main>'
(See full trace by running task with --trace)
Так что я создам директорию tmp в исходной папке…
Но затем это привело меня сюда:
Migrating database...
rake aborted!
Errno::EACCES: Permission denied @ rb_sysopen - /src/tmp/5ad4443faf817dc922116f8df65ae5c3
lib/discourse.rb:97:in `initialize'
lib/discourse.rb:97:in `open'
lib/discourse.rb:97:in `atomic_write_file'
/src/lib/plugin/instance.rb:726:in `activate!'
lib/discourse.rb:283:in `block in activate_plugins!'
lib/discourse.rb:280:in `each'
lib/discourse.rb:280:in `activate_plugins!'
/src/config/application.rb:318:in `block in <class:Application>'
/src/lib/plugin_initialization_guard.rb:5:in `plugin_initialization_guard'
/src/config/application.rb:317:in `<class:Application>'
/src/config/application.rb:73:in `<module:Discourse>'
/src/config/application.rb:72:in `<main>'
/src/Rakefile:7:in `<main>'
(See full trace by running task with --trace)
Похоже, что boot_dev запускает docker exec от имени пользователя discourse… но директории принадлежат пользователю с uid 1016 (uid моего пользователя на хосте).
Предполагаю, что многие разработчики не сталкиваются с этой проблемой на своих личных ноутбуках, где их пользователь имеет uid 1000, и это случайно совпадает…