Digital Ocean に Discourse のインストールは成功し、すべて正常に動作していますが、実際の Discourse ファイルがどこにあるのかどうしても見つかりません。いくつかの修正を試したり、プラグインを作成したりしたいのですが、ファイルが見つかりません。FileZilla を使ってサーバーにログインしましたが、discourse/app などの Discourse アプリケーションのファイルはどこにも見当たりません。var/discourse フォルダに入っても何もありません。次に var/discourse/containers を確認しましたが、やはり何もありません。SSH で .launcher に enter app と入力すると、ターミナル上ではファイルが var/www にあることが確認できますが、サーバーにログインするとこのディレクトリは存在しません。var/lib/docker/containers を試しましたが、やはり何もありません。Discourse ファイルは正確にどこにあるのでしょうか?よろしくお願いします。
Docker はそのように動作します。実際のファイルは Docker コンテナ内部にあり、Filezilla では「見えない」状態になります。
プラグインやテーマなど、Discourse の変更をテストしたい場合、本番環境のインストールでは行うことはできません。
テーマについては Beginner's guide to using Discourse Themes をご覧ください。
プラグインについては Developing Discourse Plugins - Part 1 - Create a basic plugin をご覧ください。
Dockerを使わないでインストールする別の方法はありますか?すべてのガイドを読みましたが、見えないファイルを使って開発するのは少し難しいです。
このパラダイムは、90 年代の PHP アプリケーションとは大きく異なります。当時、本番サーバーで FTP を使ってファイルを編集するのは一般的でした。
Discourse の動作の変更は、個別のプロジェクトとして、独自の Git リポジトリで管理され、既存のプラグインおよびテーマ API を活用するものとされています。
例えば、トピック作成時にユーザーが好みの色を入力できる追加フィールドを追加したいとします。その場合、まず Developing Discourse Plugins - Part 1 - Create a basic plugin に従って新しい Discourse プラグインを作成し、GitHub に discourse-favorite-color という名前のリポジトリとして公開します。その後、Install plugins on a self-hosted site に記載されている手順に従って、そのプラグインを自分のインスタンスにインストールします。
OK、わかりました。この新しい開発方法に慣れる必要がありますね。ただ気になったのですが、プラグインを追加するたびに ./launcher rebuild app を実行する必要があるのでしょうか?そして、プラグインを変更した際にも再度それを実行する必要があるのでしょうか?
はい。
ただし、これは本番環境のインストールであるため、頻繁に行うべきではありません。
開発やテストの目的については、Developing Discourse Plugins - Part 1 - Create a basic plugin の冒頭で、「開発環境」のセットアップ方法が説明されており、そこで変更を加え、ブラウザをリフレッシュするだけでテストを行うことができます。
私はそのように行っていますが、/admin/upgrade の Web インターフェースからアップグレードすることも可能です。
また、2 コンテナインストールの場合、以下のようにアップグレードできます。
./launcher bootstrap web_only
./launcher destroy web_only; ./launcher start web_only
これにより、サイトが停止するのは新しいサーバーが起動するまでの間(約 1 分)だけです。