Если вы планируете сделать этот экземпляр доступным в интернете, использование домена .local в файле app.yml приведёт к ошибкам. Возможно, вы собираетесь использовать его только дома или исключительно для тестирования, но я просто хотел об этом упомянуть.
При условии, что сетевая конфигурация Docker работает корректно и контейнер доступен по указанному IP-адресу извне хост-машины, вам также потребуется настроить DNS так, чтобы домен discourse.simonz.local указывал на этот IP-адрес.
Похоже, что происходит следующее: домен разрешается в адрес хост-машины, а вы не указываете порт (например, discourse.simonz.local:1234) при попытке доступа к нему. В результате запрос попадает в nginx, а не в контейнер Docker.
Если вы хотите, чтобы Discourse был доступен на другом порту, скорее всего, вам не нужен отдельный IP-адрес. Если же вы хотите, чтобы он был доступен на стандартном порту одновременно с nginx на стандартном порту, вам потребуется либо настроить DNS так, чтобы он направлял запросы на правильный IP-адрес, либо использовать nginx в качестве прокси для Discourse.
Домены .local обычно объявляются системой на основе настроенного имени хоста. У Discourse обычно нет необходимости делать это самостоятельно, поэтому в контейнере может не быть соответствующей функциональности.
Если вы хотите использовать стандартный порт, отдельный IP-адрес и маршрутизацию через DNS, это выходит за рамки поддержки Discourse, и настройка будет зависеть от различных факторов вашей сети.
Если ваша цель — просто иметь доступ к чему-либо через nginx, а также к Discourse на одном хосте, я рекомендую использовать описанный выше подход с прокси. Хотя это также технически не поддерживаемый способ установки, это более распространённая конфигурация, и больше людей смогут помочь с её настройкой.