플러그인을 다시 컴파일하면서 Discourse를 다시 컴파일하지 않고(최신 버전으로 업데이트하지 않고) 실행하는 것이 어떻게 가능한가요? Discourse는 업데이트가 매우 잦은 문제가 있습니다. 업데이트가 자주 플러그인을 작동하지 않게 만듭니다. Discourse 업데이트 없이 플러그인만 다시 컴파일하고 싶습니다. 이것이 가능한가요?
@Ed_Bobkov 님, 안녕하세요.
(1) 직접 만든 Discourse 기본 Docker 이미지와 (2) 포크한 Discourse GitHub 코드베이스를 사용하여 Discourse를 빌드함으로써, 원하시는 "본질"을 “지원되지 않는 방식으로” 달성할 수 있습니다. 만약 이것이 반드시 필요하다고 생각하신다면, Discourse 소스 코드의 포크를 실행하는 방법을 사용할 수 있습니다.
즉, 이 경우 다음 사항을 수행해야 합니다:
- Dockerfile을 편집하여 포크한 Discourse 소스 저장소를 추가하세요.
- launcher 스크립트를 편집하여 대체 기본 Docker 이미지를 추가하세요.
Discourse Dockerfile의 다음 줄을 확인하세요:
git clone https://github.com/discourse/discourse.git &&\
그리고 launcher 스크립트의 다음 줄을 확인하세요:
image="discourse/base:2.0.20200512-1735"
개인 Docker 레지스트리를 운영 중인 경우, 선택한 Discourse 기본 이미지를 개인 레지스트리에 push하여 다음과 같이 사용할 수 있습니다:
image="localhost:5000/base:2.0.20200512-1735"
마찬가지로, Discourse를 포크한 경우 위 Dockerfile에서 해당 포크를 사용할 수 있습니다. 예를 들어:
git clone https://github.com/your_git_account/discourse.git &&\
이 방법은 기본 Docker 이미지와 빌드 코드를 모두 관리하는 데 도움이 됩니다.
물론, 이 방법은 권장되지 않습니다. Discourse의 모든 버그 수정 및 보안(및 기능) 업데이트의 이점을 누릴 수 없기 때문입니다. 또한 이 방법은 지원되지 않으며 권장되지도 않습니다.
도움이 되셨으면 좋겠습니다. @Ed_Bobkov
참고: 이 방법을 사용하면 여전히 Discourse를 다시 빌드하게 되지만, (1) 기본 Docker 이미지의 버전과 (2) Discourse GitHub 저장소 코드를 제어하게 됩니다. 이 방법은 지원되지 않으며(제 지식范围内) 전혀 권장되지 않으므로, 모든 것은 “당신 스스로” 책임져야 합니다.
관련 링크:
상세한 답변 감사합니다! 쉬운 해결책은 아니네요. Discourse 업데이트를 확인하지 않고 재컴파일하는 명령어가 없다는 점이 이상합니다.
안녕하세요 @Ed_Bobkov
아마도 제가 모르는 다른 방법이 있을 수도 있겠네요
그 부분은 다른 분들에게 맡기겠습니다.
얼마 전 이 문제를 며칠 동안 고민해 봤는데, 다양한 시행착오 끝에 제가 낼 수 있는 '최선’이 바로 이 방법이었어요.
더 쉬운 방법이 있다면 정말 듣고 싶지만, Docker를 많이 다룬다면 이 방식이 충분히 합리적이긴 합니다.
우선 이미지를 빌드해야 합니다. Discourse는 기본 이미지를 가져와서 수정하는 방식으로 시작하죠. 프로덕션 환경(Docker)에서 새 플러그인을 추가하는 경우 일반적으로 컨테이너를 다시 빌드해야 합니다. 그래서 위에서 그렇게 답변드린 것입니다.
Discourse 시스템 관리에 대해 저보다 더 잘 아시는 분들이 여기 많으시니, 여러분이 찾으시는 방향에 맞춰 더 좋은 아이디어를 제시해 주실 분도 계실지 모릅니다.
감사합니다!
플러그인만 업데이트하고 Discourse 버전은 업데이트하지 않으려는 경우, 온라인 대시보드에서 접근할 수 있는 Docker Manager의 업그레이드 콘솔을 사용하여 해당 플러그인에 해당하는 업그레이드 버튼을 클릭하면 됩니다. 예를 들어:
https://your-site/admin/upgrade
주의사항 #1: 이 방법은 공개된 자산, 예를 들어 오픈 소스 플러그인에서만 작동한다고 생각합니다. 빌드 스크립트에 내장된 배포 키를 통해 접근하는 비공개 자산의 경우 전체 프로젝트를 다시 빌드해야 할 수 있습니다.
주의사항 #2: 많은 플러그인 업데이트는 최신 Discourse 빌드와의 호환성을 추가하기 위해 배포됩니다. 대부분의 경우, 일부 업그레이드는 구버전 Discourse와의 호환성을 깨뜨릴 수 있으므로 최신 버전으로 양쪽 모두 업그레이드하는 것이 합리적입니다. 단, 이는 수행하려는 작업에 따라 달라집니다.
