Как собрать все статические ресурсы (js, css), используемые Discourse

Вопрос хороший, но у меня нет на него хорошего ответа.

Система конфигурации, используемая внутри контейнера, описана здесь:

В файле README там объясняется, как работают хуки в целом. Конкретные доступные хуки зависят от того, как настроен ваш экземпляр — главный файл app.yml включает один или несколько шаблонов. В большинстве случаев одним из них является web.template.yml:

Именно там определяется хук assets_precompile (на строке [L159], на момент написания этого текста). Согласно документации по Pups, вы можете запускать другие команды до или после его выполнения с помощью before_assets_precompile и after_assets_precompile соответственно.

Команды выполняются внутри контейнера Docker, поэтому вам не нужно ничего делать для этого.

Директива cd: может указывать прямо на /var/www/discourse/public/assets/, и каждая строка в cmd выполняется из этого каталога. (Предупреждение: каждая строка в массиве cmd выполняется в отдельной оболочке, как в Makefile).

Я не уверен, будет ли содержимое /var/www/discourse/public/assets/ сохраняться между сборками, поэтому, возможно, вам придется создавать локальный репозиторий Git и выполнять принудительную отправку каждый раз. Более «правильным» решением может быть определение тома Docker для каталога активов в app.yml (как и для других) по аналогии с этим примером и обеспечение его сохранения вне контейнера.