Настройка файла YML для Discourse

Для каждого сайта на движке Discourse требуется настроить файл YML.
Предварительно скачайте Discourse

Шаг 1. Создайте файл YML для сайта

Файл надо разместить в папке containers.
Проще всего взять файл samples/standalone.yml и скопировать его в папку containers.
Если у Вас будет несколько сайтов на движке Discourse, то рекомендую дать файлу YML понятное имя: например, имя домена будущего сайта.
Например, у меня для этого форума используется файл с именем discourse-forum.ru.yml
Не пишите в файле YML ничего по-русски, иначе получите сбой: “invalid byte sequence in US-ASCII”.

Шаг 2. Настройка секции «expose»

В секции «expose» настраивается соответствие между внутренними портами контейнера Docker и внешними портами HTTP, по которым будет доступен Ваш сайт:

expose:
  - "4578:80"
  - "2222:22"

Если у Вас будет только один сайт на Discourse, то можете использовать указанные выше порты.
Если у Вас будет несколько сайтов на Discourse, то внутренние порты для каждого сайта должны быть разными.
Например, у меня на одном сервере работает 2 сайта на движке Discourse.
Для первого я установил указанные выше порты, а для второго к внутренним портам первого добавил «+1»:

expose:
  - "4579:80"
  - "2223:22"

Шаг 3. Настройка секции «env»

В секции «expose» настраивается домен Вашего будушего сайта и параметры почты.
У меня настройки следующие:

  DISCOURSE_DEVELOPER_EMAILS: 'admin@discourse-forum.ru'
  DISCOURSE_HOSTNAME: 'discourse-forum.ru'
  DISCOURSE_SMTP_ADDRESS: smtp.yandex.ru        
  DISCOURSE_SMTP_PORT: 587                     
  DISCOURSE_SMTP_USER_NAME: admin@discourse-forum.ru
  DISCOURSE_SMTP_PASSWORD: <пароль>
  DISCOURSE_SMTP_ENABLE_START_TLS: true  

Параметр DISCOURSE_HOSTNAME задаёт домен Вашего сайта.
Обратите внимание, что в настоящее время неизвестен способ добавить путь в корневой веб-адрес Discourse.
Другими словами, можно установить Discourse по адресу example.ru или forum.example.ru, но нельзя установить по адресу example.ru/forum.
Это плохо: надеюсь, в будущих версиях Discourse такая возможность появится.

Шаг 4. Настройка секции «volumes»

В этой секции настраивается соответствие между корневой папкой контейнера Вашей операционной системы и корневой папкой контейнера внутренней операционной системы Docker.
У меня настройки следующие:

volumes:
  - volume:
      host: /usr/local/discourse/shared/discourse-forum.ru
      guest: /shared
  - volume:
      host: /usr/local/discourse/shared/discourse-forum.ru/log/var-log
      guest: /var/log

Указанная в графе host папка будет создана автоматически при выполнении команды «bootstrap».