Я пытаюсь выполнить bundle exec rake s3:upload_assets от имени root, но получаю следующие ошибки: Could not locate Gemfile or .bundle/ directory.
Также я попробовал выполнить команду без root, используя sudo -E -u discourse bundle exec rake s3:upload_assets, но получил следующие ошибки: sudo: unknown user discourse sudo: error initializing audit plugin sudoers_audit
Обе команды я выполнил в следующей директории: /var/discourse
Это стандартная установка, без использования Docker или чего-либо подобного.
Как я могу это исправить, чтобы иметь возможность выполнить эту команду?
Спасибо! Это помогло мне продвинуться дальше, теперь я столкнулся с этой ошибкой:
root@redacted:/var/www/discourse# sudo -E -u discourse bundle exec rake s3:upload_assets
/root is not writable.
Bundler will use `/tmp/bundler20250409-510203-w6snye510203' as your home directory temporarily.
ERROR: Ensure S3 is configured in config/discourse.conf or environment vars
У меня всё настроено в параметрах сайта Discourse. Я не использую Docker, поэтому мне не нужны переменные окружения?
Все переменные S3 следует перенести в скрытые настройки, так как их конфигурация через параметры сайта обычно не приносит пользы.
Извините, я забыл, что вы не используете Docker. Но да, вам всё равно нужно установить их в переменных окружения ENV. Я делаю это в своей среде разработки для восстановления баз данных из S3.
Если вы настраиваете это не для среды разработки, то, скорее всего, совершаете серьёзную ошибку.
Исправил, выполнив следующие действия — было две ошибки.
Сначала исправил вторую ошибку так:
rails c
Upload.find(386).destroy!
exit
Это устранило проблему с повреждённым постом (некорректный текст или что-то подобное).
Затем красные ошибки на экране возникали из-за использования случайного поддомена (предоставленного Cloudflare) и загрузки файлов на него. Мне пришлось загрузить файлы на новый домен (включая мой подключённый домен).
После этого форум загрузился корректно, и при щелчке правой кнопкой мыши и открытии изображений в новой вкладке видно, что они размещены на R2. Затем я сделал резервную копию.
Это освободило соответствующее дисковое пространство для файлов (обратите внимание: у меня осталась локальная резервная копия обоих файлов — на уровне ОС и на уровне Discourse — до миграции).