При настройке свежего клонирования Discourse репозиторий поставляется с файлом standalone.yml.
Документированный рабочий процесс выглядит следующим образом:
git clone https://github.com/discourse/discourse_docker.git /var/discourse
cd /var/discourse
./discourse-setup # создаёт app.yml
Однако, если кто-то пропускает выполнение ./discourse-setup и вместо этого запускает
./launcher bootstrap app
# или
./launcher rebuild app
когда app.yml отсутствует, возникает запутывающая ошибка, так как app.yml не найден, а standalone.yml не распознаётся автоматически как отправная точка.
Это распространённая проблема для новых администраторов, которые предполагают, что standalone.yml уже готов к использованию.
Предложение:
При вызове launcher bootstrap или launcher rebuild, если файл containers/app.yml отсутствует, CLI должен выводить чёткое предупреждение, например:
Файл containers/app.yml не найден.
Не хотели ли вы сначала выполнить ./discourse-setup?
Примечание: app.yml генерируется на основе образца standalone.yml.
Это спасёт новых пользователей от тупика и необходимости искать ответы на Meta.
без предварительного создания app.yml, вы увидите только:
ERROR: containers/app.yml does not exist or is not readable.
Это верно, но не очень полезно, особенно для двух распространенных случаев:
Новая установка в продакшене
Следует выполнить ./discourse-setup, чтобы сгенерировать app.yml из standalone.yml.
Быстрый тестовый форум без исходящей почты
Иногда пользователям просто нужно запустить локальный/тестовый Discourse без настройки SMTP.
Обычный рабочий процесс выглядит так:
Так что сообщение об ошибке могло бы охватывать и этот сценарий. В текущем виде, если кто-то следует руководству, но забывает сначала скопировать app.yml, он упрётся в тот же тупик.
Возможно, стоит написать что-то вроде:
ERROR: containers/app.yml does not exist or is not readable.
If this is your first install, run ./discourse-setup to generate app.yml
(from the sample standalone.yml).
If you are restoring to a new server, make sure you copied your existing
app.yml from the old server into /var/discourse/containers
Таким образом, сообщение направит в нужное русло все три категории пользователей: