テストユーザー作成のためのシードまたはAPI呼び出し

開発とテストの過程で、Bitnami の Docker Discourse インスタンスを稼働させており、Discourse と通信する当社の API サービスの大部分の API テストはこれで対応できています。しかし、現在 /u/search/users.json?term=and を使用した検索のテストを行う必要があり、このローカルの Discourse テストサービスにいくつかのユーザーをシードしたいと考えています。デフォルトでは「user」という名前のユーザーが 1 人だけ存在します。

API ドキュメントには、これを行うための API 呼び出しについての説明が見当たらず、簡単に行えるはずなのですが、複数のユーザーをテスト用に作成する方法を見落としているのでしょうか?

なお、本番環境の有料 Discourse サービスに対しては手動でリクエストを作成してテストを行っており、それは機能しています。しかし、開発・テストインスタンスに対してテストを行いたいと考えており、そのためにはより多くのテストユーザーが必要です。

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

Bitnamiは、Discourseのセットアップフォルダのコマンドラインにアクセスできますか?

可能であれば、こちらをご覧ください:

@fzngagan さん、ありがとうございます。残念ながら、Bitnami の Discourse には Launcher がインストールされていません。「enter app」は具体的に何をするのでしょうか?単に bundle exec rake admin:create を実行すればよいと思っていたのですが、以下のようなエラーが返ってきます…

rake aborted!
LoadError: cannot load such file -- byebug
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:82:in `require'
/opt/bitnami/discourse/config/application.rb:37:in `<top (required)>'
/opt/bitnami/discourse/Rakefile:5:in `require'
/opt/bitnami/discourse/Rakefile:5:in `<top (required)>'
/opt/bitnami/discourse/vendor/bundle/ruby/2.5.0/gems/rake-12.3.2/exe/rake:27:in `<top (required)>'
/opt/bitnami/ruby/bin/bundle:23:in `load'
/opt/bitnami/ruby/bin/bundle:23:in `<main>'
(See full trace by running task with --trace)

これは有望に見えましたが、結局最初からやり直しになってしまいました。:frowning:

サポートされている公式の Discourse インストールを使用することはできますか?

開発環境では複数のサービスが必要であり、Discourseおよびそのすべてのモジュールを含むすべてのサービスを docker-compose up という単一のコマンドで起動し、サービス間のネットワーク定義・制御を行い、さらに docker-compose down ですべてを停止することを好みます。これにより、新規インストール時にランチャーを追加する追加ステップを回避できます。

OK、解決しました。開発用に bitnami Discourse の docker-compose (Docker) インストールを使用している方のために、私が実施した手順(@fzngagan 氏が指摘した内容を参考に)を以下に示します。

> docker exec -it <コンテナ名> /bin/bash

コンテナ内で…

> export RAILS_ENV=production

これがログ出力にどのような影響を与えるか確信が持てません。もしかすると =dev または development とすべきだったかもしれません…。これは皆さんに報告していただきたい点ですが、急いでいるため申し訳ありません

> bundle exec rake admin:create

質問に答えてください。パスワードは Discourse の規則に従う必要があります。そうでないとスクリプトが最初から再開されます

注:上記の @fzngagan 氏が示したリンクに記載されている ./Launcher は必要ありません。

Discourse が Dev または Test 環境に設定されている場合、これが API 経由で利用可能であれば、API サービスのテストや開発が大幅に簡素化されるのは残念なことです。しかし、当面は Docker インスタンス内のコマンドラインで対応します。

追加の注意点として、export RAILS_ENV=productionproduction に設定)は Discourse のログ情報に影響を与えないようですが、その変更後に docker-compose を再起動しなかったため、環境変数を削除するか、developmentdev、その他適切な値に設定する必要があるかもしれません。