불행히도 단순히
./launcher start app
을 실행해도 포럼이 다시 시작되지 않습니다.
그래서 저는 추가 실험을 진행했습니다. 구체적으로, 도커 이미지 내에서 실패하는 yarn 명령어를 수동으로 실행해 보았습니다:
./launcher enter app
cd /var/www/discourse
su discourse
yarn install --frozen-lockfile
... 동일한 타임아웃 오류로 실패 ...
yarn config set network-timeout 600000 -g
yarn install --frozen-lockfile
... 성공 ...
이는 타임아웃을 늘리면 문제가 해결됨을 확인해 줍니다.
남은 질문은 ./launcher rebuild app 실행 시에도 타임아웃을 늘리는 방법을 찾는 것입니다.
web.template.yml 파일은 실제로 도커 이미지 밖의 discourse/containers 디렉터리에 위치해 있습니다. 처음에는 찾지 못했는데, 제 Discourse 설치 위치가 표준 경로인 /var/discourse가 아닌 비표준 위치였기 때문입니다.
위에서 언급된 게시글에서 제시된 수정 방법은 159번 줄을 가리키고 있지만, 업데이트로 인해 더 이상 정확하지 않은 것 같습니다. 대신 188번 줄 근처에 다음과 같은 줄들이 있습니다:
- 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시간 이상! 이전보다 훨씬 더 오래 걸립니다). 좋은 소식은 포럼이 다시 온라인에 복귀했다는 것입니다. 훌륭합니다, 도움 주셔서 감사합니다.
containers/app.yml에 명령어를 추가하여 타임아웃을 늘리는 방법이 있을까요? 모든 커스터마이징을 단일 파일에 모을 수 있어 편리할 것 같습니다.
2-컨테이너 구성을 사용하는 것은 좋은 아이디어인 것 같습니다. 이것이 가능한지 몰랐습니다. 아마도 이 링크를 말씀하시는 것 같습니다: Move from standalone container to separate web and data containers; 시도해 볼 것입니다. 추가 조언이 있다면 환영합니다.
브라우저에서 Discourse 인스턴스의 업데이트를 실행할 때 ./launcher rebuild app도 실행되나요? 포럼을 일시적으로 오프라인으로 만들까요? 지금까지는 프로세스의 대부분 동안 포럼이 온라인 상태를 유지한다고 생각했지만, 확신은 없습니다. 이러한 사항들은 저에게 항상 명확하지 않았고, 실제로 파악할 시간도 없었습니다. 답변이나 더 자세한 정보를 찾을 수 있는 방향을 제시해 주시면 감사하겠습니다.