Сегодня я установил Discourse на новый хост через Docker, примерно следуя этой теме:
В документации по предварительной установке указано, что должны быть установлены PostgreSQL 13+, Ruby 3.2+ и Redis 7.
Или, если быть точным, там просто написано «Требования к программному обеспечению».
У меня запущен PostgreSQL 16, а Redis 7 я установил через snap на Rocky 9.
Я по сути скопировал файл samples/standalone.yml, отредактировал его, добавил настройки почтового сервера и внес незначительные изменения.
Когда я выполняю docker ps или docker ps -a, я вижу только один запущенный контейнер — локальный контейнер Discourse.
Возможно, это глупый вопрос, но использует ли загрузчик (launcher) контейнеры PostgreSQL и Redis или они подключаются к установкам PostgreSQL и Redis на хосте?
Он запускает свой собственный Postgres/Redis внутри основного Docker-контейнера. Я не думаю, что вам действительно нужны установленные на хосте Postgres, Ruby или Redis, но я могу ошибаться.
Тогда следующий естественный вопрос: «как заставить его использовать pg и redis хоста».
Я знаю, что могу настроить pg и redis на прослушивание интерфейса docker0, но также предполагаю, что должен быть способ настроить контейнер Discourse так, чтобы он использовал IP-адрес docker0 для pg и redis.
Мне трудно найти «то самое место» со всей документацией.
Может быть, мне стоит создать новую тему? И где?
Есть ли какая-то конкретная причина для использования PostgreSQL на хосте? По умолчанию Discourse должен самостоятельно управлять обновлениями PostgreSQL, поэтому в конечном итоге вы можете столкнуться с несовместимой версией PostgreSQL, если будете использовать версию на хосте.