플러그인 및 테마 컴포넌트 개발의 거의 모든 측면에서 Docker의 유무는 사실상 무관합니다. 이는 별개의 문제입니다. 저는 개발 환경에서 Docker 인스턴스를 실행하지 않습니다.
Discourse용 애드온을 개발할 때, 오픈소스인 경우 애드온이 최종적으로 배포될 대부분의 인스턴스에 대해 통제가 불가능하므로, 개발 인스턴스와 프로덕션 인스턴스의 정확한 버전이나 구성에 집착할 필요가 없습니다. 가장 중요한 것은 Discourse 코어 내부의 변경 사항에 대해 애드온이 더 견고하도록 좋은 개발 관행을 따르는 것입니다. 오직 자신의 Discourse 인스턴스만을 위해 개발하는 경우에도 Discourse 코어의 변경 사항에 대한 통제는 없으므로 동일한 접근 방식이 적용됩니다.
약간의 버전 차이는 일반적으로 플러그인이나 테마 컴포넌트의 실패를 일으키지 않아야 합니다. 그럴 수는 있지만 일관되지는 않습니다. 제 플러그인과 TC(테마 컴포넌트)는 수개월 동안 변경 없이 작동하며, 수개월 간격의 코어 커밋에서도 문제가 없습니다.
플러그인 변경 사항(수정 또는 기능 추가)을 작업할 때는 깨지는 변경 사항(breaking changes)을 한 번에 처리할 수 있도록 개발 인스턴스를 최신 마스터로 업데이트하는 것이 일반적입니다. 이는 git pull, bundle install 및 db:migrate 실행으로 간단히 수행할 수 있습니다.
프로덕션 인스턴스는 프론트엔드 또는 커맨드 라인 재빌드를 통해 업데이트하면 됩니다.
제 조언은 플러그인을 공개적으로 배포하여 사용자를 유치하고, 경험을 통해 시행착오를 겪으며 배우라는 것입니다. 너무 미루지 마세요: 바로 실행하세요! 실수를 두려워하지 마세요. 실수는 배우는 데 도움이 되니까요.