大家好,
我正在使用 Ansible 设置一些自动化部署和迁移,但遇到了只读模式的问题。
当我通过以下方式启用只读模式时:
docker exec app discourse enable_readonly
或者
./launcher enter app
discourse enable_readonly
大约 1 分 20 秒后,站点会自动退出只读模式。
如果我通过 WebUI(admin/backups 部分)启用只读模式,它会一直保持启用状态,直到我禁用它。
有什么想法吗?
大家好,
我正在使用 Ansible 设置一些自动化部署和迁移,但遇到了只读模式的问题。
当我通过以下方式启用只读模式时:
docker exec app discourse enable_readonly
或者
./launcher enter app
discourse enable_readonly
大约 1 分 20 秒后,站点会自动退出只读模式。
如果我通过 WebUI(admin/backups 部分)启用只读模式,它会一直保持启用状态,直到我禁用它。
有什么想法吗?
您检查过日志吗?也许有某个后台作业或插件正在中断此过程。
嗨 Lilly,
感谢您的回复。这是一个全新的默认安装,我没有安装任何插件,也没有创建任何作业。我应该查看哪些日志?抱歉,我有点新手。
我尝试了 tail -f:
/var/discourse/shared/standalone/log/rails/unicorn.stdout.log
/var/discourse/shared/standalone/log/rails/unicorn.stderr.log
/var/discourse/shared/standalone/log/rails/production_errors.log
/var/discourse/shared/standalone/log/rails/production.log
/var/discourse/shared/standalone/log/rails/sidekiq.log
/var/discourse/shared/standalone/log/var-log/redis/current
我一边查看日志一边等待事件发生,但没有看到任何异常之处。
奇怪的是,通过 WebUI 激活时一切正常,但通过 CLI 激活时却不行。
我也遇到了使用该功能的问题,包括启用和禁用只读模式。上次我最终在 rails 中运行了 Discourse.enable_readonly_mode。
每次发生这种情况都是紧急情况,我还没有调查过问题可能是什么。
供参考,在我自己的 Ansible 工具中,我不使用只读模式,但我使用了 Introducing Post Deployment Migration
谢谢 Jay。我怀疑我正在采用一种 XY 方法来解决这个问题。我将查看部署后迁移。感谢您提供的信息。
我想另一个选择可能是通过 API 调用激活 RO。
- name: post migrations
shell: "docker exec {{ discourse_yml }} bash -c 'rake db:ensure_post_migrations db:migrate'"
become: yes
所以这可能适用于只读模式:
- name: post migrations
shell: "docker exec {{ discourse_yml }} bash -c 'echo Discourse.enable_readonly_mode | rails c'"
become: yes
谢谢,非常感谢。我今晚就试试。
您使用的只读模式导致了这种差异吗?
感谢 JammyDodger!这些信息和链接非常有帮助。我不确定什么构成容器重启——据我所知,我的容器并没有每隔大约 1:30 重启一次,这是在使用 discourse enable_readonly 时 RO 模式保持启用的时间,即 Discourse.enable_readonly_mode(Discourse::READONLY_MODE_KEY)
但我可以确认 Discourse.enable_readonly_mode(Discourse::USER_READONLY_MODE_KEY) 可以“无限期”保持,这正是我想要达到的目的 ![]()
为了完整起见:
- name: Set read-only mode for live forum host
ansible.builtin.shell: |
docker exec app bash -c 'echo Discourse.enable_readonly_mode\(Discourse::USER_READONLY_MODE_KEY\) | rails c'
register: enable_readonly_output
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.