你好 @Pravi
这是专门为你准备的……
该文件位于容器中。
你可以在以下位置找到该文件及其他配置文件:
# docker exec -it app bash
# cd /var/www/discourse/config
我绝对 不建议你编辑这些文件中的任何一个,除非你真的清楚自己在做什么。
不过,阅读并理解它们确实很有帮助。
你好 @Pravi
这是专门为你准备的……
该文件位于容器中。
你可以在以下位置找到该文件及其他配置文件:
# docker exec -it app bash
# cd /var/www/discourse/config
我绝对 不建议你编辑这些文件中的任何一个,除非你真的清楚自己在做什么。
不过,阅读并理解它们确实很有帮助。
但我无法在容器中找到 discourse.config 文件。容器文件夹中只有 app.yml 文件。
你所说的“容器文件夹”并不是容器本身。
容器是一个 Docker 构建并启动以作为 Docker 容器运行的结构。
顺便说一句,请不要误解,但你是否理解什么是 Docker 容器?如果你还不了解,那完全没问题。许多人每天都在使用 Discourse,但尚未学习 Docker 容器的基础知识。学习永远不晚 ![]()
参考:
附注:@Pravi,我之前提供了进入容器并切换到配置文件所在目录的代码。你是否考虑过按照我发布的代码操作?
附注 2:你遇到问题的 rake 任务(migrate_from_s3)可以在这里找到:
我对 Discourse 了解不多。
是的,我找到了这些文件。
我该如何通过 rake 代码来排查这个问题?
你好 @Pravi,
一种方法是查看错误消息之前的日志文件条目,看看能否在 rake 任务文件中定位到相关行(或多行),并尝试隔离出导致问题的确切原因。
解决方案通常比较容易。困难之处在于发现问题的根源。
能否更具体一些?您的意思是,在执行 rake 命令之前,我需要查看网站中的日志文件。我不太明白……
你好 @Pravi
这正在成为一堂基础软件错误排查的课……这没问题。
你已经在本文第 4 楼的帖子中提供了日志信息:
那里有很多信息。
此外,你在上文也提供了该 rake 任务的完整 Discourse Ruby 代码。
抱歉,我也有很多任务要处理,所以我只是尽量从宏观层面向你展示如何进行调试,并像我们大多数人那样自行解决问题。
希望这能帮到你。
很抱歉占用了您太多时间。最后一次尝试,我试图迁移到 S3 而不是从 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>'
Tasks: 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 上传,尽管我已在 app.yml 中添加了 DISCOURSE_USE_S3: false。
如何确认 S3 上传已关闭?
[5] pry(main)> SiteSetting.enable_s3_uploads
=> false
[6] pry(main)> GlobalSetting.use_s3
=> false
[7] pry(main)> GlobalSetting.use_s3?
=> true