Использование подхода, отличного от «мастера, который проведёт вас за руку», не является «предвзятым, специфичным или особым» ![]()
В любом случае — ключ в том, чтобы иметь оригинальный образ Docker от Discourse. Всё так просто.
Я попробовал следовать официальному руководству и использовать «launcher» просто чтобы поиграть с настройкой — безрезультатно (за исключением довольно глупой проверки на то, является ли пользователь root, что просто приглашает к проблемам).
Затем я обратился к образу Bitnami (и их предложенному файлу compose) с bitnami/discourse - Docker Image, и после одной команды docker compose up (плюс куча ошибок SQL [что не сулит ничего хорошего], а также предупреждений от Ruby [тот же недостаток]) у меня запустился экземпляр Discourse:
Чистая запутанная и «нестандартная магия»…
Так что ещё раз — почему нет обычного образа?
Изучая исходный код и репозитории, я обнаружил, что используется базовый образ (discourse/base - Docker Image), хотя его версионирование/тегирование меня удивило (discourse/base - Docker Image)… Нет ли нормальных версий, я wondered? И действительно, глядя на основной репозиторий, там вроде бы не было релизов, но эх — по крайней мере есть правильно размеченные версии (Tags · discourse/discourse · GitHub).
Теперь вопрос: почему нет соответствующих образов в основном Docker Hub?
Так что да — посмотрев на то, как всё устроено, я согласен:
![]()
С другой стороны (или скорее: «как должно быть»), пример проекта (меньше по масштабу, но логика та же): GitHub - miniflux/v2: Minimalist and opinionated feed reader · GitHub.
У него есть нормальные релизы: Releases · miniflux/v2 · GitHub
Которым соответствуют образы с правильными тегами: miniflux/miniflux - Docker Image
И тогда обновление сводится к смене версии с x на y (или использованию тега latest, так что простое остановка/pull/запуск даст обновлённую версию, которая автоматически выполнит все необходимые миграции).
(кстати, размер образа примерно в 70 раз меньше, но это уже другая история)
