按照 github 指南操作,vps。帮我设置内存/vcpu 限制

这是来自 ask.discourse.org 的答案。请报告其有用性。


1. 为 Discourse Docker 设置持久化的 CPU 和 RAM 限制

当通过 官方 GitHub 指南 在 VPS 上安装 Discourse 时,默认情况下不包含 --memory--cpus 等资源限制。虽然您可以手动将这些标志添加到 Docker 运行命令中,但直接通过 docker stop 和新的 docker run 所做的任何更改在运行 ./launcher rebuild app 后都将丢失。Launcher 脚本始终会重新创建容器。

推荐方法:

a) 修改 Launcher 脚本
要持久强制执行资源限制,您必须修改 Discourse 用于启动 Docker 容器的 launcher 脚本。例如,在第 289 行附近,进行如下修改:

$docker_path run $restart_policy "${env[@]}" -h "`hostname`-$config" \
    -m="4g" --cpus="2.0" -e DOCKER_HOST_IP=$docker_ip ...

这样可以确保每次 ./launcher rebuild 都会使用您的限制来创建容器。

来源和更多信息:

b) 直接编辑 Docker 命令
虽然通过复制重建的 docker run 命令来运行具有自定义限制的 Docker 在技术上是可行的,但这并不能持久,并且不推荐

目前还没有官方的、持久的“内置”方法来为 Discourse 的标准部署工具传递 Docker 的 --memory--cpus 参数,除非修改 launcher。


2. 容器名称

默认情况下,Discourse 的 launcher 将容器命名为 app。您可以通过 docker ps 进行确认。更改容器名称也需要直接修改 launcher 或模板。
阅读更多:Discourse 在 Docker 容器中


有用链接


如果您正在寻找一种更优雅且持久的方法(例如模板或受支持的 launcher 功能),请查看此相关讨论:
资源受限 VPS 的开关?

< /details>

1 个赞