Эм… ![]()
Скрипту даже не нужен доступ к /var/discourse (зачем он там вообще?!).
Вся проблема коренится в нескольких вещах:
- огромное непонимание того, что такое Docker, как он работает и какие возможности предоставляет;
- смешение понятий Docker и Docker Compose (это не одно и то же!).
Можно создать полностью изолированную конфигурацию, которая практически не затрагивает среду хост-системы…
После тщательного изучения стало ясно, что весь скрипт «setup» был создан для максимально упрощённой установки для людей без технических навыков. Он проверяет, направляет пользователя и настраивает всё необходимое. Это может быть удобно, но полностью ломается при любой попытке отойти хоть на шаг от задуманного пути.
В самой базовой конфигурации вам может вообще не потребоваться доступ к каким-либо директориям хост-системы — всё будет содержаться в ограниченной среде (образ используется для создания контейнера, а всё необходимое хранилище управляется через тома Docker [у этого подхода есть проблемы, если вы захотите мигрировать в другое место или получить доступ к файлам, но сейчас мы говорим об основах]).
Также скрипт пытается убедиться, что DNS настроен правильно, настраивает сертификаты, обратный прокси, SMTP и прочее — опять же, это вполне нормально для упрощённой установки.
НО!
Проблема не в том, чтобы отказаться от этого, а в том, чтобы ДОПОЛНИТЕЛЬНО предоставить чистый Docker-образ (он уже существует и используется скриптами и шаблонами! discourse_docker/templates/postgres.template.yml at main · discourse/discourse_docker · GitHub & discourse_docker/launcher at main · discourse/discourse_docker · GitHub) с:
- правильной версионированием: образ помечается тегом версии выпущенного Discourse (3.4.5 или другой);
- разумной и простой документацией ожидаемых переменных окружения (для настройки подключения к базе данных, Redis и т. д.) и возможных путей/томов, которые можно подключить к хост-системе.
Только этого достаточно…
Посмотрите на упомянутое руководство по Miniflux: Miniflux Installation with Docker — там подробно описывается образ (и репозитории, где он размещён), а также возможные переменные окружения для его настройки.
Или образ Docker для MySQL: mysql - Official Image | Docker Hub — то же самое: руководство, объясняющее, что можно настроить (особенно обратите внимание на раздел «Переменные окружения»).
Никто не говорит: «вы должны использовать mysql launcher для сборки образа MySQL, чтобы его можно было использовать», или то же самое для Redis — в этих случаях вы просто используете существующие образы, и именно в этом суть использования Docker. Однако в случае с Discourse это вдруг становится «плохим» решением, и все кричат: «вы должны собрать свой собственный образ!» — зачем!?}