또한 호스트에 스택을 직접 설치하는 과정을 설명하는 다른 가이드도 확인했습니다. 저는 이러한 종속성들이 모두 설정되도록 Docker에 의존하는 방식을 선호합니다.
또한 첫 번째 가이드에서는 SMTP 서버와 DNS가 필요하다는 점을 크게 강조했는데, 이 가이드에서는 전혀 언급하지 않아 혼란스러웠습니다.
모든 것이 Docker로 구성되었으므로, Docker Compose를 실행하기만 하면 Discourse와 데이터베이스(Postgresql로 보입니다) 컨테이너(+ Discourse에 필요한 경우 캐싱 등 기타 컨테이너)를 실행할 수 있을 것이라 생각했습니다. 그리고 프로덕션 환경에서는 Kubernetes에 호스팅할 계획인데(어떤 스레드에서 읽은 바로는 그렇게 쉽지는 않은 것 같습니다).
개발용 설치인지, 운영용 설치인지 원하시나요? 후자라면 Discourse 공식 표준 설치 문서를 참고해 주세요. k8s에서 실행하는 것은 가능하지만, ./launcher를 사용하여 컨테이너를 빌드해야 하므로 바로바로 적용하기가 쉽지 않습니다. 그리고 완전한 무중단 업그레이드를 수행하려면 바로 이해하기 어려운 몇 가지 단계가 필요합니다. 쉽게 하려면 VM을 시작하는 것이 좋습니다 (Ubuntu나 Debian을 실행하는 경우 조금 더 쉽습니다).
네, 운영 환경에서는 이메일을 보낼 수 있어야 합니다. 개발 환경에서는 당연히 그럴 필요가 없습니다.
@merefield Docker 링크 감사합니다. 동작하더군요, 그리고 제가 상상했던 프로세스와 거의 비슷합니다. 다만, 모든 것이 하나의 컨테이너에 패키징되는 것이 약간 이상합니다. 그리고 네, 속도가 느리긴 합니다.
놀란 점은 git clone로 discourse를 클론하고 cd discourse로 이동하면, 제 셸이 정말로 느려진다는 것입니다. 처음 보는 현상입니다 . 이 저장소에는 아마도 파일이 많거나 다른 문제가 있는 것 같은데, 왜 셸 성능에 영향을 미치는지 정확히 알 수는 없습니다.
@pfaffman 프로덕션 환경에 더 가까운 설치 방식도 시도해 보고 싶습니다. 프로세스가 어떻게 진행되는지 파악하기 위해서입니다. VM에 설치하는 것은 문제없습니다. 그런데 SMTP 서버와 도메인은 어떻게 되나요? 가이드는 이 부분에 대해 매우 엄격하게 서술되어 있으며, 반드시 이들을 갖춰야 한다고 합니다.
이것도 괜찮지만, 몇 가지 완전히 이해하지 못하는 부분이 있습니다:
도메인이 실제로 왜 필요한가요? localhost만으로는 부족합니까?
메일 서버가 Discourse에 사용하는 도메인과 동일한 도메인을 가리켜야 하나요?
가이드에서는 서브도메인에 대해서도 언급하고 있는데, 왜 서브도메인이어야 하나요? 예를 들어, Azure에 VM을 설정하면 VM에 특정 DNS가 할당됩니다(예: myvm.westeurope.cloudapp.azure.com). 이 도메인만으로도 충분하지 않나요?
아니요. 개발용 설치를 하려면 호스트명이 필요하지 않지만, 로컬호스트에서만 작동합니다. 팀이 함께 사용하려면 호스트명이 필요합니다. 팀이 있다면 당연히 도메인 이름도 있을 텐데요. 회사에서 사용하는 도메인의 서브도메인을 하나 만들어 보시거나, 12달러를 내고 호스트명을 구매하시거나, 무료 체험을 이용해 보세요.
음, 우리 같은 경우 – discourse를 공개적으로 만들고 싶지 않아요. 내부용 토론 보드를 원하거든요. 다른 분들 의견에 동의하는데, localhost가 실패하고, 단순히 테스트용으로 실행해보려 해도 설치가 실패하네요. 정말 꺼림칙하고, 잘 알려진 표준적인 ‘docker-compose up -d --build’ 대신에 이상한 스크립트들을 사용한다는 건 최소한으로 표현해도 놀라운 일입니다. 이 제품을 사용하고 싶은지 모르겠어요. 너무 진지하게 받아들이는 것 같거든요… 아니면 적어도 런처를 작성한 누군가는 그렇다는 거죠.
도메인 이름은 필요하지만, 공개 IP일 필요는 없습니다. 서버가 인터넷에 접근할 수 있다면(디스커스를 다운로드하고 필요한 구성 요소를 가져오기 위해) Let’s Encrypt 관련 설정을 끄면 작동할 것입니다. yml 파일에서 SSL과 Let’s Encrypt 템플릿을 삭제하기만 하면 될 것 같지만, 그렇게 하면 discourse-setup을 사용할 수 없게 됩니다. standalone 샘플을 복사해서 수동으로 수정하세요.