Откуда берётся %{base_url}?

Всем привет,

Я запускаю контейнер Discourse с использованием образа Bitnami. Проблема, с которой я сталкиваюсь, заключается в том, что во всех шаблонах для переменной %{base_url} используется example.com, и я, кажется, не могу это изменить.

Я создал тикет в службу поддержки Bitnami, но, несмотря на поиски, нигде в интернете не могу найти информацию о переменной base_url.

Может кто-нибудь помочь мне разобраться в этом? Я очень запутался с этой переменной.

Мы не поддерживаем установку с использованием образов Bitnami. Если вы хотите получить поддержку, мы рекомендуем установить Discourse в соответствии с инструкциями по стандартной установке.

Я понимаю, но это относится к базе, а не к моему вопросу: откуда берется %{base_url} или где он находится? Я даже не могу найти это в документации или на форуме Discourse.

Как изменить %{base_url} с example.com на мое собственное доменное имя, чтобы мои шаблоны электронной почты парсились корректно?

Похоже, при установке что-то пошло не так, если здесь не подставляется правильный домен.

Как уже упоминалось, вам может быть проще следовать стандартной процедуре установки и восстановить резервную копию, если вам всё ещё не удалось выяснить, что именно пошло не так.

Почему оно заполняется, а не просто присваивается как переменная?

Похоже, вам нужно отредактировать YAML-файл Docker Compose перед его загрузкой: containers/bitnami/discourse/docker-compose.yml at main · bitnami/containers · GitHub (строки 31 и 51)

Я понимаю, но изменение после первого запуска не помогает. Поэтому я задаюсь вопросом, нужно ли это делать с самого первого запуска, так как мне важно знать, устанавливается ли этот хост (имя) статично или нет.

Компонуется ли контейнер Bitnami также полностью с нуля при обновлении, как официальный?

Переменная, похоже, определена здесь:

Переменная current_hostname устанавливается здесь:

Переменная force_hostname объявлена в шаблоне настроек сайта здесь:

Поскольку она скрыта, её нельзя изменить в настройках администратора. Как и другие настройки сайта, я предполагаю, что она хранится в базе данных. Я поискал в дамп базы данных нашего экземпляра, и force_hostname не установлен и даже не объявлен. В нашем YAML-файле для официального контейнера Discourse указано значение DISCOURSE_HOSTNAME, но, вероятно, это глобальная настройка, а не настройка сайта, поэтому она, видимо, применяется иначе.

current_hostname, похоже, получается из текущего подключения, то есть динамически. Но я не вижу, где именно он определяется, вероятно, это внешний модуль или gem:

Я не уверен, что делает контейнер Bitnami с настройкой DISCOURSE_HOST, поэтому, по крайней мере, вы можете поискать в своей базе данных force_hostname, пока мы не выясним больше о том, как DISCOURSE_HOSTNAME из официального контейнера хранится и применяется.

Спасибо за вашу поддержку на данный момент! Я, сравнивая с вашими выводами, тоже подумывал о настройке моей установки как единого мультисайта. Это, возможно, могло бы помочь, но, конечно, дело в том, чтобы разобраться в ситуации, и у меня сложилось ощущение, что Bitnami не вносит никаких изменений в сам Discourse; так почему же возникает эта проблема.

Мне нужно проверить мои дамп-файлы.

Не могу найти это в моих дамп-файлах базы данных.

Хорошо, сейчас я не понимаю, как оба варианта контейнера Discourse внутренне применяют имя хоста на основе YAML-файла контейнера.

Не включает ли сборка контейнера Bitnami другой веб-сервер, а вместо этого напрямую открывает веб-порт Discourse? В официальном контейнере перед Discourse стоит ещё один Nginx, от которого я, если возможно, хотел бы избавиться, так как у нас уже есть внешний веб-сервер Apache вне контейнера.