Docker 이미지 discourse/discourse는 안전하고 프로덕션 환경에 사용할 수 있나요?

Discourse 팀 여러분,

현재 다음 주소를 통해 제공되는 Docker 이미지를 평가하고 있습니다: discourse/discourse - Docker Image

해당 이미지는 매우 최근에 게시되었는데(글 작성 시점 기준 24시간 미만), 공식 문서에서 이에 대한 언급을 찾지 못했습니다.

궁금한 사항은 다음과 같습니다:

  • 이 Docker 이미지는 Discourse 팀이 프로덕션 환경 사용을 위해 공식적으로 유지보수 및 지원하는 것인가요?
  • 아니면 언제든 삭제되거나 변경될 수 있는 실험적 이미지인가요?

프로덕션 환경에서 이 이미지를 안전하게 사용할 수 있는지 확인하고 싶습니다.

감사합니다.

Docker 이미지는 discourse/base - Docker Image 이라고 생각합니다. (다운로드 500만+회 vs 800+회) 참고:

Docker 저장소에는 항상 최신 빌드 버전이 discourse/base - Docker Image 에 포함됩니다. 기본 이미지를 직접 빌드할 필요가 없습니다.

답장 주셔서 감사합니다. 그건 알고 있어요. 하지만 discourse/base 이미지를 Docker Compose로 쉽게 실행하는 데 실패했어요. 이 새로운 discourse/discourse 이미지는 설정이 훨씬 간단하고 문제없이 잘 작동하지만, 이 이미지의 목적과 프로덕션 환경에서 사용할 수 있는지 이해하고 싶어요.

아래 내용을 읽어보세요:

discourse/discourse는 새로 나온 것이라 아직 실험 단계입니다. 따라서 프로덕션 환경에서 사용을 권장하지 않습니다. 상황이 바뀌어 사용 가능해지면 확실히 더 많은 정보를 제공하겠습니다.

현재로서는 표준 설치 방법만 지원할 수 있습니다.

설명에 따르면, 셀프 호스팅의 공식적인 방법은 표준 설치 절차를 따르는 것입니다. 이를 원하지 않는다면 사실상 혼자 해결해야 합니다. docker-compose를 사용해 시작하려면, launcher를 사용하여 이미지를 빌드한 후 자신의 리포지토리에 푸시하고, ./launcher start-cmd web_only 명령을 사용해 필요한 ENV 변수 등을 가져와 시작하는 것을 권장합니다. 여전히 데이터베이스 마이그레이션, 자산 사전 컴파일 등이 제대로 수행되었는지 확인하기 위한 조치가 필요합니다.

또한, GitHub를 활용하여 이미지를 빌드하고 시작 시 마이그레이션 등을 자동으로 수행하도록 구성할 수도 있습니다(이것은 언젠가 CDCK에서 제공될 것으로 보입니다). 과거에 클라이언트를 위해 이렇게 해본 적이 있습니다.(예산이 있으시다면 도움을 드릴 수 있습니다.)

최선을 추구하신다면, “실험적” 버전을 사용하는 것이 비교적 안전할 수 있습니다. 단, 프로덕션에 배포하기 전에 각 새로운 배포를 테스트할 스테이징 사이트가 필요하고, 진행을 위해 상당한 대기 시간이나 Discourse에 대한 깊은 지식이 필요한 조치를 취해야 할 수 있다는 점을 유의해야 합니다. 최악의 경우(아마도) 실험적 버전이 정식 사용 가능한 상태가 될 때까지 표준 설치로 백업 및 복원할 준비가 되어 있어야 할 수 있습니다.

discourse/discourse가 안정화되어 프로덕션 환경에서 사용할 수 있을 것으로 예상되는 일정이나 타임라인이 있나요?

추가로 확인하고 싶은 사항이 있습니다. discourse/discourse Docker 이미지가 오픈 소스인지, 만약 그렇다면 GitHub 저장소 링크를 제공해 주실 수 있을까요?

현재 타임라인이나 보증 같은 것은 없습니다. 하지만 앞으로 몇 주 안에 더 많은 정보를 공유할 수 있기를 바랍니다.

네, 모두 오픈 소스입니다. 이 GitHub Actions 워크플로우를 통해 정기적으로 빌드되고 게시됩니다: discourse_docker/.github/workflows/push-web-only.yml at main · discourse/discourse_docker · GitHub

정보와 GitHub 링크를 공유해 주셔서 감사합니다. 정말 감사드립니다!

네, 오븐에 뭐가 들어가는지는 이제 공공연한 비밀이 되어가고 있죠 :slight_smile:

다가오는 기능의 기술 미리 보기(Technical Preview)를 받아보실 수 있지만, 데이비드가 말했듯이 아직 공식적으로 지원할 단계는 아닙니다. 계획해야 할 문서가 많고, 테스트해야 할 엣지 케이스도 산적해 있어서… 이런 부분들을 다듬기 전까지는 프로덕션 환경에서의 사용을 권장하기 어렵습니다.

@david / @featheredtoast, 여러분과 팀의 다른 멤버들이 정말 훌륭한 일을 해냈습니다.

자동 테스트를 위해 bitnami/discourse에서 discourse/discourse로 전환했는데, 매우 잘 작동하고 있습니다. 제 사용 사례는 완벽합니다 - 새 포럼을 생성하고, 테스트를 실행한 후 삭제하는 것이죠.

따라서 큰 감사를 전하고 싶었습니다. 안정화되고 공식 지원이 되는 시점에 많은 다른 사용자들도 이점을 누릴 수 있을 것이라고 확신합니다.

비슷한 상황인데, 개발자들이 SSO 통합을 더 쉽게 구축할 수 있도록 Docker Compose 환경에서 Discourse를 빠르게 시작하는 방법을 찾고 있었습니다. 아래 설정은 꽤 잘 작동하는 것 같습니다 (관심 있는 분들을 위한 설정):

docker-compose.yml
volumes:
  redis_data: {}
  discourse_data: {}
  discourse_postgres: {}
  discourse_postgres_data: {}

services:
  mailpit:
    image: docker.io/axllent/mailpit:latest
    container_name: mailpit
    ports:
      - '8025:8025'

  redis:
    image: redis:7-alpine
    container_name: redis
    volumes:
      - redis_data:/data
    ports:
      - '6379:6379'
    command: redis-server --appendonly yes

  discourse_db:
    image: discourse/postgres
    container_name: discourse_db
    volumes:
      - discourse_postgres:/var/lib/postgresql
      - discourse_postgres_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB: discourse
      - POSTGRES_USER: admin
      - POSTGRES_PASSWORD: admin_password
      - DB_USER: discourse_user
      - DB_PASSWORD: discourse_user_password

  discourse:
    image: discourse/discourse:3.5.1
    container_name: discourse
    depends_on:
      - discourse_db
      - redis
      - mailpit
    ports:
      - '80:80'
    volumes:
      - discourse_data:/shared
    environment:
      - DISCOURSE_HOSTNAME: localhost
      - DISCOURSE_DEVELOPER_EMAILS: admin@example.com
      - DISCOURSE_DB_HOST: discourse_db
      - DISCOURSE_DB_PORT: 5432
      - DISCOURSE_DB_NAME: discourse
      - DISCOURSE_DB_USERNAME: discourse_user
      - DISCOURSE_DB_PASSWORD: discourse_user_password
      - DISCOURSE_REDIS_HOST: redis
      - DISCOURSE_REDIS_PORT: 6379
      - DISCOURSE_SMTP_ADDRESS: mailpit
      - DISCOURSE_SMTP_PORT: 1025
      - DISCOURSE_SMTP_ENABLE_START_TLS: false
      - DISCOURSE_SMTP_AUTHENTICATION: none
      - LANG: en_US.UTF-8

미래 계획이나 타임라인에 대한 소식을 기다리고 있습니다. Digital Ocean App Platform과 같은 환경(클라이언트가 더 적은 기술 지식으로도 관리할 수 있는 환경)에서 이를 실행할 수 있으면 좋겠습니다.

공유해 주셔서 감사합니다, @JackNZ. discourse/postgres 이미지가 있다는 사실조차 몰랐습니다 :sweat_smile: 이 부분을 수정해야겠네요. 그래도 제 현재 진행 상황도 공유해 보겠습니다. 여기서 더 흥미로운 것은 start.sh 스크립트로, 조금 더 다듬어야 할 부분이 있지만 관리자 사용자, API 키를 생성하고 레이트 리미터를 비활성화합니다.

bitnami/discourse 관련 정보를 알려주셔서 정말 감사합니다. 제한된 네트워크 환경에서는 공식 방법으로 설치하는 것이 꽤 힘들었습니다. bitnami/discourse 이미지를 사용해 보겠습니다. 감사합니다!

도움이 필요할 경우를 대비한 힌트입니다.

Bitnami는 더 이상 해당 항목을 지원하지 않습니다. Upcoming changes to the Bitnami catalog (effective August 28th, 2025) · Issue #35164 · bitnami/charts · GitHub

아직 지원되지 않는 스탠드얼론 Discourse 이미지를 사용해 볼 것을 권합니다. 잘 작동한다는 보고를 여러 번 본 적이 있습니다.

discourse/discourse를 시도해 보겠습니다. 좋은 조언을 해 주셔서 감사합니다.

지금 프로덕션 배포에 거의 준비된 상태인가요? 아직 아니라면, 언제 배포될지에 대한 로드맵이나 예상 일정이 있을까요?

그리고 잘 만들었습니다. 이미지 태그를 간단히 업데이트하면 새 릴리스를 관리하는 것이 훨씬 쉬워지겠네요 :+1:

호스팅 환경에서 내부 업데이트가 진행 중인데, 예상치 못한 의존성 문제가 발생했습니다. 공식 지원으로 마킹하기 위해 배포하려면 먼저 이 문제들을 해결해야 하지만, 여기에서 남은 마지막 장애물들은 이번 분기 내에 해결될 것으로 예상합니다. 긴 시간이 걸렸네요.

그동안 제가 호스팅하는 모든 사이트는 discourse/discourse 도커 이미지를 통해 구축되어 있으며, 여기서는 잘 작동하고 있습니다.

@featheredtoast! 여기에서의 작업에 감사드립니다! discourse/discourse 이미지로 추가 플러그인을 설치할 수 있을까요? 그 과정은 어떻게 되나요?