Как отключить хранилище S3?

Привет, @Pravi

Вот он, специально для вас…

Этот файл находится внутри контейнера.

Вы найдете этот файл и другие конфигурационные файлы здесь:

# docker exec -it app bash
# cd /var/www/discourse/config

Я категорически не рекомендую изменять содержимое этих файлов, если вы действительно не знаете, что делаете.

Однако, безусловно, интересно их прочитать и понять.

Но я не могу найти файл discourse.config в контейнере. У меня в папке контейнера есть только app.yml.

Папка контейнера, о которой вы говорите, — это НЕ сам контейнер.

Контейнер — это структура Docker, созданная и запущенная для работы в качестве контейнера Docker.

Кстати, не воспринимайте это неправильно, но понимаете ли вы, что такое контейнер Docker? Это совершенно нормально, если вы не понимаете. Многие люди ежедневно используют Discourse, но ещё не изучили основы контейнеров Docker. Никогда не поздно научиться :slight_smile:

Ссылка:

PS: @Pravi. Я предоставил вам код для входа в контейнер и перехода в директорию, где находится файл конфигурации. Вы рассматривали возможность использования этого кода, который я опубликовал?

PS2: Задача rake, с которой у вас возникли проблемы (migrate_from_s3), находится здесь:

Я не очень хорошо разбираюсь в Discourse.

Да, я нашел эти файлы.

Как я могу устранить проблему, используя код Rake?

Привет, @Pravi,

Один из подходов — просмотреть записи в файле журнала непосредственно перед сообщением об ошибке и попытаться найти строку (или строки) в файле задачи Rake; затем попробуйте точно определить, что вызывает вашу проблему.

Решение обычно — самая простая часть. Сложнее всего — обнаружить, в чём именно заключается проблема.

Можете ли вы быть более конкретны? Вы имеете в виду, что мне нужно искать файл журнала на моем сайте перед выполнением команды rake. Я не совсем понял это.

Привет, @Pravi

Это становится уроком по базовой отладке ошибок в программном обеспечении… что нормально.

У вас уже есть информация из логов в вашем посте #4 в этой теме:

Там много информации.

Также выше приведён полный код на Ruby для Discourse, относящийся к этой rake-задаче.

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

Надеюсь, это поможет.

Извините, что отнял у вас так много времени. В последний раз я попытался выполнить миграцию на S3 вместо миграции с него, но получил следующую ошибку, хотя все детали хранилища S3 были указаны в моей панели администратора. Пожалуйста, посмотрите, если вам знакомы такие ошибки.

root@ip-172-31-7-247:/var/discourse# ./launcher enter app
root@ip-172-31-7-247-app:/var/www/discourse# rake uploads:migrate_to_s3
rake aborted!
FileStore::ToS3MigrationError: Пожалуйста, укажите следующие переменные окружения:
  - DISCOURSE_S3_BUCKET
  - DISCOURSE_S3_REGION
  и либо
  - DISCOURSE_S3_ACCESS_KEY_ID
  - DISCOURSE_S3_SECRET_ACCESS_KEY
  либо
  - DISCOURSE_S3_USE_IAM_PROFILE
/var/www/discourse/lib/file_store/to_s3_migration.rb:38:in `s3_options_from_env'
/var/www/discourse/lib/tasks/uploads.rake:237:in `create_migration'
/var/www/discourse/lib/tasks/uploads.rake:245:in `migrate_to_s3'
/var/www/discourse/lib/tasks/uploads.rake:224:in `block in migrate_to_s3_all_sites'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:68:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/2.6.0/gems/rails_multisite-2.3.0/lib/rails_multisite/connection_management.rb:78:in `each_connection'
/var/www/discourse/lib/tasks/uploads.rake:222:in `migrate_to_s3_all_sites'
/var/www/discourse/lib/tasks/uploads.rake:218:in `block in <main>'
/usr/local/bin/bundle:23:in `load'
/usr/local/bin/bundle:23:in `<main>'
Задачи: TOP => uploads:migrate_to_s3
(Полный трассировочный вывод можно получить, запустив задачу с флагом --trace)

Обновление:

Я добавил все эти переменные: DISCOURSE_S3_BUCKET, DISCOURSE_S3_REGION, DISCOURSE_S3_ACCESS_KEY_ID, DISCOURSE_S3_SECRET_ACCESS_KEY в файл app.yml, и вышеуказанная проблема была решена. Теперь я могу выполнить миграцию на S3, но не могу выполнить миграцию с S3. Система просит отключить загрузку в S3, хотя я добавил DISCOURSE_USE_S3: false в свой файл app.yml.

Как подтвердить, что загрузка в S3 отключена?

[5] pry(main)> SiteSetting.enable_s3_uploads
=> false
[6] pry(main)> GlobalSetting.use_s3
=> false
[7] pry(main)> GlobalSetting.use_s3?
=> true

Привет @Pravi

Я передаю эстафету для обсуждения этой темы в теме команды Meta:

Там очень много подробного обсуждения.

Всего наилучшего… и надеюсь, это поможет.