두 개의 Discourse 사이트용 plugins.yml 파일 하나

여러분 안녕하세요,

cmd를 사용하여 원격 위치의 파일을 app.yml 파일에 포함할 수 있을까요?

두 개의 사이트에 동일한 표준 플러그인 목록을 적용하고 싶습니다. 매번 복사해서 붙여넣는 대신, <위치 A>에 파일을 두고 앱을 다시 빌드할 때마다 자동으로 가져올 수 있을까요?

예:
<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에 push합니다.
  2. 이 플러그인들을 위해 yml 파일에 템플릿을 추가합니다. 예를 들어:
templates:
  - "templates/web.template.yml"
  - "templates/web.ratelimited.template.yml"
  - "templates/web.socketed.template.yml"
  - "mytemplates/plugins.template.yml"

이 단계까지는 이미 테스트해 보았고, 이러한 방식으로 템플릿 파일을 사용하여 플러그인을 추가하고 컨테이너를 빌드하는 데는 문제가 없습니다.

아직 테스트하지 않은 부분은 launcher에 리포지토리를 pull하도록 한두 줄을 추가하는 것입니다. 솔직히 말하면 이 부분은 아직 작업하지 않았습니다.

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

아직 이 부분을 작업하지 않았지만, 가능하다고 확신합니다. 컨테이너 빌드 시 템플릿에서 플러그인을 가져오는 부분은 이미 테스트했고 잘 작동하기 때문입니다. 따라서 이 접근 방식에서 남은 유일한 작업은 github에서 mytemplates 리포지토리를 pull하도록 launcher에 코드를 추가하고 테스트하는 것입니다.

그러나 솔직히 말하자면, 이 기법은 불필요한 작업이 많아 보입니다:

  • launcher를 편집하여 리포지토리에서 템플릿을 pull하도록 하는 것
  • yml 파일에 플러그인을 위한 새 템플릿 항목을 추가하는 것

yml 파일에 복사해서 붙여넣기만 하면 "끝"인데 말입니다. 하지만 이 아이디어도 흥미롭다고 생각합니다. 시스템 관리 퍼즐은 저에게 항상 재미있으므로, 여러분을 위해 이것을 생각해보는 것이 즐거웠습니다.

어쨌든, @IAmGav 님의 질문에 대한 짧은 답은 "네, 가능합니다"입니다. 그리고 물론, 시도해 보고 싶으시다면 "해 보세요"라고 말씀드리고 싶습니다.

도움이 되길 바랍니다.