Поддерживает ли Discourse работу нескольких машин (каждая с одним контейнером Docker) за отдельным балансировщиком нагрузки?
Мне нужна конфигурация Discourse, способная выдержать отказ сервера, поэтому моё стандартное решение — настроить три сервера за балансировщиком нагрузки (при этом SSL-сертификат обрабатывается самим балансировщиком).
Я настроил внешние серверы PostgreSQL и Redis для Discourse в отдельном режиме. (Всё это развёрнуто на Google Cloud Platform). Для настройки веб-контейнера Docker я использую загрузчик Discourse.
Поддерживает ли Discourse запуск нескольких контейнеров, если каждый из них находится на отдельной машине?
Следует ли просто скопировать созданный контейнер Docker с первой машины на остальные?
Как обрабатываются загруженные логотипы?
Хранятся ли загруженные логотипы, фавиконы и т.п. в базе данных?
Один последний вопрос: отслеживается ли контейнер Docker? Если контейнер Docker остановится по какой-либо причине, настроил ли launcher его автоматический перезапуск?
Хорошо. У меня теперь работает Discourse на одной машине. Есть ещё две машины. Общий том docker-гостя указывает на директорию NFS, чтобы все машины могли получать доступ к загруженным файлам (особенно логотипам и т.п.).
Я скопировал образы docker на машины 2 и 3 (docker save -o app-image local_discourse/app, а затем docker load -i app-image).
Мне казалось, что достаточно просто выполнить ./launcher start app, но он пытается проверить containers/app.yml.
Возникнут ли проблемы, если разрешить проверку app.yml (и внесение изменений) в БД с машин 2 и 3?
Есть ли лучший способ запустить три машины в рамках одной конфигурации?
Используйте – я думаю, это ./launcher start-command app – на полностью настроенной машине (“сборочной машине”), чтобы получить полную командную строку Docker.
Скопируйте app.yml и выполните то, что вы только что пытались сделать (launcher start).