root@www:/var/discourse# ./launcher start data
检测到 x86_64 架构。
+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -h www-data -e DOCKER_HOST_IP=172.17.0.1 --name data -t -v /var/discourse/shared/data:/shared -v /var/discourse/shared/data/log/var-log:/var/log --mac-address 02:e6:17:cc:a2:dc local_discourse/data /sbin/boot
无法在本地找到镜像 'local_discourse/data:latest'
docker: 从守护进程收到的错误响应:拉取访问被拒绝,镜像 'local_discourse/data' 不存在或可能需要 'docker login':拒绝:请求的资源访问被拒绝
请运行 'docker run --help' 获取更多信息
root@www:/var/discourse#
有什么建议吗?搜索该错误消息只显示此线程。
{“content”:“[quote="rlauriston, post:21, topic:379986"]\n\n+ /usr/bin/docker run --shm-size=512m -d --restart=always -e LANG=en_US.UTF-8 -e LC_ALL=en_US.UTF-8 -e LANGUAGE=en_US.UTF-8 -h www-data -e DOCKER_HOST_IP=172.17.0.1 --name data -t -v /var/discourse/shared/data:/shared -v /var/discourse/shared/data/log/var-log:/var/log --mac-address 02:e6:17:cc:a2:dc local_discourse/data /sbin/boot\nUnable to find image 'local_discourse/data:latest' locally\ndocker: Error response from daemon: pull access denied for local_discourse/data, repository does not exist\n\n\n[/quote]\n\n这表明您可能运行了 ./launcher cleanup 并删除了数据容器(我找不到其他容器丢失的方式,但我也可能弄错)。如果确实如此,或者在任何情况下,我的建议是启动一个新的 droplet,将您的 yml 文件复制过来,并恢复您最新的备份。”,“target_locale”:“zh_CN”}
在数据容器消失后,使网站恢复运行的方法是编辑 data.yml,将模板更改为 postgres13 模板,然后重建数据容器,之后就可以启动数据容器,销毁并启动 web_only 容器(它不会连接到与创建时找到的不同数据容器)。然后网站就恢复运行了。
我很确定如果我重试数据库升级,它会成功,但为了安全起见,我做了新的数据库备份,将他移到一个新的液滴上,恢复了数据库,他已经恢复运行了。
您能否详细说明一下问题是如何产生的,例如让其他人放心,这个问题可能不会影响到他们?
Tk;dr:不。
我无法说明最初的问题是什么。知道切换到 pg13 模板是删除容器后解决问题的办法。这是 pg15 主题中说明的一部分。也许曾经有过磁盘空间问题?
啊,我想我现在明白了……这是一个相当旧的系统升级,使用了 pg13?所以情况相当罕见。
升级失败是因为 PostgreSQL 升级需要 14GB 的可用磁盘空间,而液滴(droplet)的磁盘空间不足。
为什么在我扩展磁盘空间后它仍然无法工作,可能是因为正如 @Jagster 在上面建议的那样,我执行了 ./launcher cleanup,而这对于双容器安装来说是不合适的。
我希望在某个时候切换到单容器安装,因为对于不真正了解 Discourse 架构的人来说,这似乎问题较少。我也不想自托管,但该网站有很多照片,当我们用完磁盘空间时,Discourse 的托管费用从每月 100 美元涨到了 200 美元。该网站每月从 Google Ads 获得的收入约为 30-40 美元。
我两年前才迁移到 Digital Ocean。
而且我上周在空间不足时也这么做了。
@pfaffman 建议那可能是问题所在。我不知道。
{“content”:“[quote="rlauriston, post:28, topic:379986"]\n为什么在我扩展磁盘空间后它没有起作用,可能是因为正如@Jagster上面建议的那样,我执行了一个不适合双容器安装的./launcher cleanup\n\n[/quote]\n\n不。这会导致单容器设置出现相同的问题。\n\n问题在于,当您尝试获取磁盘空间时,您销毁了已停止的数据容器。我认为关键的错误是在停止数据和Web容器时执行了清理。\n\n[quote="rlauriston, post:28, topic:379986"]\n在某个时候,我想切换到单容器安装,因为对于不真正了解Discourse架构的人来说,这似乎问题较少。\n\n[/quote]\n\n双容器设置为您节省了一些麻烦,因为它更容易延迟postgres升级。但是,在这种情况下,您被卡住了,因为升级添加了ai插件,这迫使您在数据容器上执行postgres升级。\n\n也许在您尝试升级之前运行了launcher cleanup,或者您根本没有运行它并调整了大小。\n\n所以有一系列问题\n\n* 可能是太多的docker镜像填满了磁盘(也许磁盘太小)\n* 需要更新PostgreSQL\n* Ai插件已添加到核心,强制进行数据库升级\n* PostgreSQL升级因某种原因失败,并且不知道启动数据容器(我认为消息是这样说的)\n* 在数据容器关闭的情况下运行launcher cleanup,这删除了需要启动以进行干净关闭的容器”,“target_locale”:“zh_CN”}
我为获得磁盘空间所做的唯一操作是调整液滴的大小。
我所做的其他一切都是根据命令输出、此处帖子或链接主题中的建议来尝试完成失败的升级。
@pfaffman 我的网站充斥着明显的垃圾信息。是否有可能在升级过程中丢失了某些反垃圾邮件工具?
不太可能。我不知道 Akismet 是否曾被配置过,但它现在已不太有效。现在推荐的是这个:Discourse AI - Spam detection AI 插件现在是核心功能并已安装。
如果您需要帮助,可以给我发邮件。
编辑:有可能,但可能性不大,这里描述的更改可以解释您的垃圾邮件激增。
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.