これは ask.discourse.org から提供された回答です。その有用性について報告してください。
1. Discourse Docker の永続的な CPU および RAM 制限の設定
公式 GitHub ガイドを使用して VPS に Discourse をインストールする場合、--memory や --cpus などのリソース制限はデフォルトでは含まれていません。Docker の実行コマンドにこれらのフラグを手動で追加することはできますが、docker stop と新しい docker run で直接行った変更は、./launcher rebuild app を実行すると失われます。ランチャースクリプトは常にコンテナを再作成します。
推奨されるアプローチ:
a) ランチャースクリプトの変更
リソース制限を永続的に適用するには、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 引数を渡すための公式で永続的な「組み込み」方法はまだありません。
2. コンテナ名
デフォルトでは、Discourse のランチャーはコンテナに app という名前を付けます。これは docker ps で確認できます。コンテナ名を変更するには、ランチャーまたはテンプレートを直接変更する必要があります。
続きを読む: Docker コンテナ内の Discourse
役立つリンク
よりエレガントで永続的な方法(テンプレートやサポートされているランチャー機能など)を探している場合は、この関連ディスカッションを確認してください。
リソース制約のある VPS 用のスイッチ?