Docker для разработки против Rails сервера + Ember

Я прочитал следующую тему о настройке Discourse в среде разработки:

Однако в ней ничего не сказано об использовании Docker для запуска Discourse.

В то же время руководство по развёртыванию в production упоминает «Docker»:

Я планирую разместить сайт на AWS (Amazon).

Кроме того, я заметил, что существует репозиторий Git для самого Docker:

а также образ Discourse для Docker в Git:

Я уже установил Discourse на macOS, клонировав репозиторий Discourse и запустив его на Rails сервере и Ember CLI; всё работает корректно. Но я не использовал при этом «Docker».

Мои вопросы:

  1. Могу ли я использовать сервер AWS для установки Docker из https://github.com/docker/compose, а затем поместить образ Discourse https://github.com/discourse/discourse_docker внутрь этого Docker? Это допустимо? Существует ли какой-либо другой правильный метод?

  2. Я планирую использовать базу данных локального сервера. Возникнут ли какие-либо проблемы, если я захочу скопировать резервные копии (сообщения/темы, созданные на localhost) в окружение production (фактический сервер AWS)?

Сейчас я создаю на локальном сервере некоторые тестовые сообщения (реалистичные), чтобы сайт не был пустым при запуске. Правильно ли это? Или можно настроить сайт в режиме «в разработке» (или аналогичном) даже на реальном сервере AWS, чтобы пользователи не видели пустой сайт? Тогда я смогу создать несколько стандартных сообщений уже на самом сервере.

Чтобы получить лучшую поддержку от сообщества, используйте стандартную установку для продакшена. Это автоматически настроит контейнер Docker и базу данных, так что вам не придется беспокоиться об этом отдельно.

Да, это можно развернуть в AWS.

Я рекомендую использовать этот подход на время, пока вы не станете действительно хорошо разбираться в Discourse и не сможете отвечать на свои собственные вопросы :wink:

Сначала вы можете установить для своего сайта режим «требуется вход» (в настройках сайта), чтобы держать его в приватности — специального режима «в разработке» нет.

И, возможно, также настройку «требовать одобрения пользователей», на случай если кто-то зарегистрируется, пока вы не следите за этим.

Как сказал Роберт, поскольку вы не планируете разрабатывать плагины и ваша цель — просто запустить сайт, вам подойдёт стандартная установка (самый простой способ — развернуть EC2-инстанс с 2 ГБ ОЗУ и 40 ГБ дискового пространства; можно обойтись и меньшими ресурсами, но я не рекомендую это). Это также позволит настроить такие элементы, как DNS и вход через социальные сети, что невозможно сделать при установке в режиме разработки.

Однако вы можете создать резервную копию вашего сайта в режиме разработки и восстановить её на продакшн-версии.

Спасибо за ваш ответ. Вы имеете в виду резервное копирование базы данных PostgreSQL, верно? Или достаточно просто нажать кнопку резервного копирования в панели инструментов администратора в Discourse?

Уже купил 2 ГБ оперативной памяти и 100 ГБ дискового пространства, хотя не знаю, понадобятся ли они когда-нибудь. Возможно, буду размещать несколько сайтов. В любом случае, думаю, что 2 ГБ памяти будет недостаточно для двух или нескольких сайтов.

В любом случае копировать контент из Dev-окружения в продакшн крайне необычно.

Просто подготовьте ваш контент в продакшне? Если он приватный, у вас есть все время в мире.

Да, я сделаю это. Просто поисковые роботы могут заметить и зарегистрировать сайт как «недоступный» и так далее, хотя я точно не уверен.

Тогда выходите на публику как можно скорее? Вы можете отслеживать показатели, например, в Google Search Console (в зависимости от юрисдикции).

Хорошо, и я просто создам сайт онлайн как производственную среду. Похоже, это будет меньше проблем и хлопот. Спасибо.

Да, гораздо меньше хлопот, я думаю. Стандартная установка может занять всего 20 минут.

Вы также можете позже поэкспериментировать с тестовым сайтом, если захотите заняться разработкой плагинов.

Да, но я делал это при запуске импорта на Dev-окружении.

Это по-прежнему моя рекомендация.