テーマの自動化

皆さん、こんにちは。新参者です :slight_smile:

Docker化された最新版のBitnami DiscourseをKubernetesクラスターで実行していますが、素晴らしいプロジェクトのようですね。しかし、テーマのインストールを自動化しようとすると、ある種の問題に直面しています。基本的に、CICDからこのDockerイメージをビルド、デプロイ、実行、設定する必要があり、最初のログインですべてが準備完了になるようにしたいのです。設定関連では、カスタマイズされたテーマのインストールがあります。いくつかのフォーラムやドキュメントから理解した限りでは、プログラムでインストールするネイティブな方法はないようです。クリック・バイ・クリックのガイドしか見つけられませんでした(もし間違っていたら訂正してください)。

最初のアイデアは、Kubernetes経由でDiscourseのファイルシステムにテーマファイルを「手動で」追加することでしたが、Discourseは独自の内部ロジックに従ってファイルをリネームし、予測不可能にするため、Discourseのファイル管理は奇妙な方法で行われているようです。

さらに詳しく調べると、discourse_theme という素晴らしいCLIを見つけましたが、問題は、機能させるためにはDiscourseからAPIキーを生成する必要があることです(また、間違っていたら訂正してください)。

結局、いくつか質問があります。
まず、見落としているDiscourseのテーマをプログラムでインストールする別のネイティブな方法はありますか?
そして、スクリプトからDiscourseのAPIキーを取得する方法はありますか?
最後に、この種の問題を回避するためのKubernetesのトリックを知っている人はいますか?

事前に多くの感謝を申し上げます。

よろしくお願いいたします。

公式のインストール方法を使用すると、それがサポートされます: Install a Theme programatically

「いいね!」 1

私が思う唯一の解決策は、必要なプラグインを含むイメージを構築し、それをDockerリポジトリにプッシュし、適切な環境変数で起動することです。そして、イメージが初めて実行されたときに、データベースが移行され、アセットがコンパイルされてS3にプッシュされるのを確認します。古いイメージが実行されている間にSKIP_POST_DEPLOYMENT_MIGRATIONSを設定して一度移行し、その後、新しいイメージが起動して古いイメージがシャットダウンされた後にSKIP_POST_DEPLOYMENT_MIGRATIONSをオフにして再度移行するか、db:ensure_post_migrations rakeタスクを実行することを検討してください。

実行中のイメージのいずれかでrakeタスクを実行できます。例えば、

rake api_key:create_master['キーの説明']

上記で、もう少し先に進めるかもしれません。過去にGCPとAWSでクライアントのためにKubernetesインスタンスを実行したことがあります。それがどのように機能するかについては、100%満足したことはありませんでした(クライアントの観点からは完全に機能していましたが、私の観点からはそれほどエレガントではありませんでした。しかし、修正するほど非エレガントでもありませんでした!)。これ以上提供できることはあまりありませんが、さらにヘルプが必要な場合は、直接連絡してください。

「いいね!」 1