DiscourseのセルフホスティングをDocker composeで

皆さん、こんにちは!:blush:

お元気でお過ごしでしょうか?Discourseについて質問があります。Discourseはセルフホストできますか?このプラットフォームに非常に興味があり、経験のある方がいらっしゃればぜひ知りたいです。何か特別な要件や注意すべき点はありますか?

事前にご協力いただきありがとうございます!:folded_hands:

はい、それ専用のサブカテゴリ全体があります!:

Documentation > Self-Hosting
標準インストールを特に読む必要があります。

お返事ありがとうございます!

当協会で使用するために、起動して利用できるスタンドアロンの「docker-compose」ファイルが欲しいのですが。

可能でしょうか?

バックグラウンドで実行されている、よくわからないたくさんのスクリプトを実行するのは好きではありません。

はい、可能ですが、ご自身で作成およびサポートする必要があります。

以下は、開発用に最近投稿された Dockerfile で、開始点として役立つかもしれません。

Discourse はオープンソースです。ランチャースクリプトとテンプレートを読んでみてはいかがでしょうか?(それらは Compose についても情報を提供します)

これはサポートされていませんが、メインライン Discourse に追従しようとする取り組みがあります。ここで docker compose を検索 するか、次の 2 つのバリアントをご覧ください。

ただし、注意してください。バージョン間で Discourse を維持することは困難になる可能性があります。しかし、IndieHosters は数年前からそれを実行しています。

どちらのプロジェクトも元の Discourse/base docker image を使用していますが、@sampupsdiscourse-docker 用に行っているように、インストールを調整しているかどうかはわかりません。

返信ありがとうございます!

discourse/base イメージのみをインストールしましたが、コンテナはログなしで終了しました。
The image shows a command-line interface displaying a container named "discourse-container" in a Docker environment, which was recently exited with no processes running.

理由をご存知ですか?

ベースイメージはそれ自体では何も行わないからです。その中で Discourse をコンパイルし、その後実行する必要があります。そしてそれは、まずイメージの外側./launcher スクリプトを実行することによって行われます。したがって、まずは公式の方法でインストールを試みてから、オプションについて考えるべきです。

Discourse のインストール手順は非常に一般的ではありませんが、長年の経験から私はある一つの理由でこのアプローチを気に入っています。それは、ある程度管理者として活動してからでないとその真価を理解できないという点です。それは、ソースコードへの各コミット後にアップグレードできるという可能性です。驚くべきことです。あなたが Contribute > Bug を報告すると、1時間後にはチームやコミュニティによって解決されている可能性があります。自動テストが実行され、コミットがマージされて利用可能になります。そして、あなたはすぐにアップグレードできます。なぜなら、あなたは最新のソースコードから Discourse を再コンパイルするからです。

つまり、特定のバージョンがコンパイルされたイメージがあるわけではありません。あなたは「空」のイメージを受け取り、任意の時点から、必要なプラグインの組み合わせであなたのバージョンをコンパイルします。そしてそれは依然として動作します!

この種の柔軟性は、他のどこにもありません。

したがって、私は確信はありませんが、docker compose ファイルを作成したい場合、compose ファイル内で ./launcher スクリプトの手順を再現する必要があり、それを別のイメージにコンパイルして、その後それを単に接続する必要があります。しかし、アップグレードが必要な場合に組み込みの手順を使用することはできません。自分で新しいバージョンを構成する必要があります。

皆さん、ご協力ありがとうございます。Discourseを私のような初心者でも簡単に使えるようにしてくれてます!

はい、ですが、クラブでDiscourseを利用できるようにする前に、ローカルホストでDiscourseを実行していくつかのテストを行い、Discourseの管理インターフェースとコマンドラインに慣れておきたいのです。エラーが発生した場合に、自分で修正できるようにしたいのです。 「サポートされている」バージョンでは、DNSエントリ、ポート443および80が必要ですが、私の場合は不要です。少なくとも私はそう思います。

ローカルホストでこれを実行するためのハックを知っている人はいますか?

Dockerをインストールして、これを実行してください。

はい:

https://meta.discourse.org/tags/c/documentation/developer-guides/56/dev-install

:slight_smile:

あるいはそれも。ただし、Maxは本番環境での動作を知りたいと考えているが、ホスティング環境を購入する前にローカルでテストしたいと考えていると理解しています。そのためには、Dockerの設定がより適切でしょう。実際にバグを修正するためには、開発環境が正しい選択です。

皆さん、サポートありがとうございました!

Docker を使用した「通常の」インストールで動作させることができました。