Наша организация управляет веб-приложением и форумом, а также несколькими другими приложениями, такими как Bitwarden. Мы контейнеризировали всё, чтобы обеспечить соответствие сред разработки и продакшена, а также упростить настройку разработки с помощью Docker Compose. Мы используем очень похожий файл compose для запуска в продакшене, и это отлично работает для наших базовых задач.
Я хотел бы перевести наш форум на Discourse, но мне сложно понять, как сохранить соответствие сред разработки и продакшена и простую настройку разработки.
В документации указывается, что, хотя Discourse использует Docker для установки и запуска, он на самом деле не вписывается в парадигму контейнеров так же, как другие контейнеры Docker: его нельзя добавить в стек Compose/Swarm/Kubernetes и запустить, подключив к контейнерам базы данных и Redis, как это делается с другими контейнерами приложений. Альтернативные решения или предложения настоятельно не рекомендуются в попытке не расколоть сообщество, поэтому я не здесь, чтобы оспаривать этот подход.
Я принял тот факт, что вместо запуска и управления Discourse так же, как остальной частью моего стека, мне придётся использовать выделенную виртуальную машину в продакшене и управлять ею иначе. Но меня интересует, как достичь моих основных целей: простая настройка разработки с достаточным соответствием продакшену.
Для контекста: моя текущая настройка разработки — «установить Docker, клонировать этот репозиторий и запустить docker-compose up». Если я правильно понимаю из руководства по локальной установке, теперь нам потребуется 9 системных зависимостей (Ruby, PostgreSQL и т. д.) до того, как мы вручную клонируем и настроим сам Discourse. На мой взгляд, одно из преимуществ Docker (и Docker Compose) заключается в том, что вам не нужно запускать такие компоненты, как PostgreSQL и Redis, непосредственно на вашей системе (и сталкиваться с проблемами их настройки, когда разработчики работают под Windows); вы можете просто запустить стек, и процессы будут изолированы в одноразовых контейнерах. Есть ли способ сохранить это преимущество?
Другой недостаток заключается в том, что, поскольку мы небольшая команда волонтёров, большинство других разработчиков работают под Windows 10 Home, которая, насколько мне известно, не поддерживает WSL. Это означает, что они не смогут следовать инструкциям по установке для Windows (хотя Docker работает на Windows 10 Home).