이 답변은 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를 실행하는 것은 기술적으로 가능하지만, 이는 지속적이지 않으며 권장되지 않습니다.
launcher를 수정하지 않는 한, Discourse의 표준 배포 도구에 Docker --memory 또는 --cpus 인수를 전달하기 위한 공식적이고 지속 가능한 “내장” 방법은 아직 없습니다.
2. 컨테이너 이름
기본적으로 Discourse의 launcher는 컨테이너 이름을 app으로 지정합니다. docker ps 명령으로 이를 확인할 수 있습니다. 컨테이너 이름을 변경하려면 launcher나 템플릿을 직접 수정해야 합니다.
자세히 보기: Discourse in a Docker container
유용한 링크
- Limiting Discourse memory usage on a dedicated box
- Configure Discourse Docker on servers with more RAM and CPU
더 우아하고 지속 가능한 방법(예: 템플릿 또는 지원되는 launcher 기능)을 찾고 있다면, 이 관련 토론을 확인해 보세요:
Switches for resource constrained VPS?