您好,我在停止并重新启动 Discourse 时遇到了两个大问题。
第一个问题
在我执行 2 到 3 次停止操作后(无论是使用 ./launcher stop 还是通过 Portainer 停止),容器拒绝再次启动,持续卡在 “rm: cannot remove ‘/shared/nginx.http.sock’: Is a directory” 错误上。(我刚刚注意到该 socket 文件并不在 “shared” 目录下,而是在 “shared/standalone” 中,这是否只是错误消息的笔误?)
出于某种我尚不清楚的原因,这个 socket 文件在停止后似乎变成了一个目录,而模板无法删除它,因为它试图删除的是目录而非 socket。手动删除它没有任何作用,它每次都会重新出现。
第二个问题
运行 ./launcher rebuild app 时,它在 “FATAL: the database system is starting up” 处卡住,此前出现了第一个错误 “PANIC could not locate a valid checkpoint record”。我已经阅读并尝试了所有关于此问题的解决方案,但我找到的唯一有效“解决方法”是删除 discourse 目录及其内部所有内容,然后重新设置所有配置……这显然不是一个真正的解决方案!
看起来有时停止 Discourse 容器会导致数据库处于不良状态,由于“正在启动”而无法继续,可能是在尝试修复某些问题。但我尚未找到如何解决这个问题,该问题似乎在某些停止和重启操作后出现。
有什么线索吗?有没有办法让 Postgres 自行修复这些问题?