저도 동일한 타임아웃 문제를 겪었지만, 제안된 해결책을 구현하는 데 어려움을 겪어 몇 가지 세부 사항을 추가하고 싶습니다.
첫째, 제 Discourse 설치 위치가 표준이 아니어서 /var/discourse/templates를 찾는 데 애를 먹었습니다. Docker 내부에서 찾아보았는데, 물론 이는 무의미한 일이었습니다.
둘째, 159번째 줄이라는 설명은 더 이상 정확하지 않습니다. template.yml의 다음 섹션을 가리키고 계신 것 같습니다:
- exec:
cd: $home
hook: yarn
cmd:
- |-
if [ "$version" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
- su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'
셋째, 저는 yaml, pups, yarn 또는 이들이 Discourse에서 어떻게 사용되는지에 대해 잘 알지 못해 추측하고 싶지 않았습니다. 대신 원래 섹션에 다음과 같은 변경을 시도했습니다:
- exec:
cd: $home
hook: yarn
cmd:
- |-
if [ "$version" != "tests-passed" ]; then
rm -rf app/assets/javascripts/node_modules
fi
- su discourse -c 'yarn config set network-timeout 600000 -g && yarn install --frozen-lockfile && yarn cache clean'
이 방법이 저에게는 잘 작동했습니다. ./launcher rebuild app 명령이 매우 오랜 시간(저는 2시간 이상) 걸리지만, 적어도 완료까지 실행되며 포럼이 다시 작동합니다.
마지막으로, 이 문제(제 경우)가 메모리 부족 때문이 아니었음을 분명히 하고 싶습니다. 32GB가 설치된 VPS를 사용 중이며, 문제가 발생했을 당시 24GB가 사용 가능 상태였습니다.