이것은 Ubuntu 24 VPS입니다. Discourse가 이미 10기가바이트의 RAM을 사용하고 있습니다. 이건 말이 안 됩니다.
Docker 실행 명령어를 생성하는 것 같습니다. 여기에
–shm-size=512m
이 포함되어 있습니다.
다른 Docker 컨테이너들도 여기에서 실행될 예정이므로, 4코어 12기가(4c12r)가 모두 소진되지 않도록 추가적인 CPU 및 RAM 제한을 적용하는 것이 좋습니다. 생성된 명령어를 그대로 복사해서 사용해도 되는지, 아니면 어딘가에 저장되어 있는지 궁금합니다. --cpu-shares=1100 --shm-size=512m --memory=4g --memory-swap=8g --kernel-memory=5500m 옵션을 주입하기 위해 docker stop, docker rm을 실행할 계획입니다.
이러한 제한을 적용하는 더 나은 방법이 있을까요?
(2)
컨테이너 이름이 정말로 "app"인가요? --name app
docker ps를 실행해 보니 실행 중인 유일한 컨테이너가 app인 것을 확인할 수 있습니다.
(3)
이 값은 변형(munged)되지 않았습니다. 시작하기 전 검토 화면에서는 제 프로바이더의 SMTP 도메인이 표시되었습니다.
이 답변은 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행 근처에서 다음을 수정하십시오:
b) Docker 명령 직접 편집
재빌드된 docker run 명령을 복사하여 커스텀 제한이 있는 Docker를 실행하는 것은 기술적으로 가능하지만, 이는 지속적이지 않으며 권장되지 않습니다.
launcher를 수정하지 않는 한, Discourse의 표준 배포 도구에 Docker --memory 또는 --cpus 인수를 전달하기 위한 공식적이고 지속 가능한 “내장” 방법은 아직 없습니다.
2. 컨테이너 이름
기본적으로 Discourse의 launcher는 컨테이너 이름을 app으로 지정합니다. docker ps 명령으로 이를 확인할 수 있습니다. 컨테이너 이름을 변경하려면 launcher나 템플릿을 직접 수정해야 합니다.
자세히 보기: Discourse in a Docker container