Один файл plugins.yml для двух сайтов Discourse

Всем привет,

Возможно ли использовать команду для включения файла из удаленного расположения в файл app.yml?

У меня есть два сайта, и я хотел бы иметь стандартный список плагинов. Вместо того чтобы копировать и вставлять его каждый раз (и иногда забывать это сделать), смогу ли я разместить его в и просто подтягивать при каждой пересборке приложения?

Например:
<include executable="wget --no-check-certificate -q -O - http://LocationA/plugins.yml" noexec="no">

Привет, @IAmGav

Возможно, это не совсем то, что вы ищете, и я ещё не до конца проработал этот вариант, но вот суть:

  1. Создайте директорию /var/discourse/mytemplates.
  2. Добавьте в эту директорию новый файл шаблона с именем plugins.templates.yml, например:
hooks:
  after_code:
    - exec:
        cd: $home/plugins
        cmd:
          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-bbcode.git
          - git clone https://github.com/discourse/discourse-sitemap.git
          - git clone https://github.com/discourse/discourse-solved.git
          - git clone https://github.com/discourse/discourse-whos-online.git
          - git clone https://github.com/discourse/discourse-checklist.git
  1. Создайте новый git-репозиторий для этой директории и отправьте его на GitHub.
  2. Добавьте шаблон в ваши файлы yml для этих плагинов, например:
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "mytemplates/plugins.template.yml"

Я уже протестировал этот этап и могу добавлять плагины и собирать контейнер с помощью файла шаблона таким образом — без проблем.

Единственный момент, который я ещё не тестировал, — это добавление одной или двух строк в launcher для получения репозитория; честно говоря, я ещё не работал над этой частью.

 git clone https://github.com/my_super_repo/mytemplates.git

Хотя я ещё не работал над этой частью, я уверен, что это выполнимо, поскольку я уже протестировал загрузку плагинов в сборку контейнера из шаблона, и это работает отлично. Таким образом, для данного подхода остаётся только добавить код в launcher и протестировать получение репозитория mytemplates с GitHub.

Однако, если быть откровенным, этот метод кажется излишне трудоёмким:

  • Редактирование launcher для получения шаблона из репозитория
  • Добавление новой записи шаблона в файл yml (для плагинов)

Гораздо проще скопировать и вставить в файлы yml и «забыть об этом», но мне также нравится эта идея. Системные головоломки всегда доставляют мне удовольствие, поэтому было интересно поразмыслить над этим для вас.

В любом случае, короткий ответ на ваш вопрос, @IAmGav, таков: «да, это выполнимо», и, конечно, если вы хотите попробовать, то «смело приступайте».

Надеюсь, это поможет.