다른 기기에 사용할 별도의 이미지/컨테이너를 빌드할 수 있나요?

  • 모든 구성이 변경되지 않은 상태라고 가정합니다(빌드 및 시작 방식 동일)
  • 빌드 과정을 가속화하기 위해 전용 패키징 서버에서 이미지를 빌드한 후 Harbor에 업로드하고, 사용 전에 해당 이미지를 다운로드하여 사전 빌드된 이미지를 사용해 컴파일 시간을 줄이는 방법을 고려하고 있습니다.
  • 이러한 방식으로 구현할 수 있는 관련 튜토리얼이 있는지 여쭤봐도 될까요? 아니면 공식 지원 없이 자체적으로 구현해야 하며, 스스로 탐구해야 하는 상황인가요?

Discourse 팀이 호스팅된 제품을 위해 이와 유사한 작업을 수행한다고 생각합니다. 이렇게 하면 몇 분 만에 포럼을 개설할 수 있습니다(사용자가 모든 것이 설치될 때까지 기다려야 한다면 정말 비효율적이겠죠?). 다만, 이 부분에 대한 #documentation은 없는 것 같습니다.

가이드에 대해 잘 알지 못하지만, 기본적으로 bootstrap을 수행한 후 해당 이미지를 리포지토리에 푸시하고, ./launcher start-cmd를 실행하여 컨테이너를 시작하는 데 필요한 ENV를 확인합니다.

어느 시점에는 데이터베이스 마이그레이션을 수행해야 합니다(제로 다운타임 배포를 원한다면, 구 컨테이너가 실행되는 동안 데이터베이스를 마이그레이션할 수 있도록 SKIP_POST_DEPLOYMENT_MIGRATIONS를 사용해야 하며, 컨테이너가 시작된 후에는 rake db:ensure_post_migrations db:migrate를 실행해야 합니다). 또한 에셋을 미리 컴파일하고, S3를 사용하는 경우 해당 에셋을 S3로 푸시해야 합니다.

이는 최소한 Discourse에 특화된 부분의 대부분입니다. 더 많은 도움이 필요하고 예산이 있다면, 저는 가능합니다.