tknospdr
(David Muszynski)
1
私は現在、Discourseを2つの異なる仮想マシンにインストールしています。
公式のインストール手順を使用しています。
一方はMac Pro上のVMWare FusionインスタンスのDebian 12、もう一方はTrueNAS上で動作するUbuntu 24の仮想マシンです。
どちらもローカルネットワーク上の専用サーバーで、ブリッジ接続されたネットワークを持ち、ユニークなアクセス可能なIPアドレスがあります。
TNサーバーは複数の他のDockerコンテナ化されたアプリをホストしており、すべて正常に動作しLANとインターネット経由でアクセス可能です。Mac Proはネイティブにウィキをホストしています。
両方の環境で、ブートストラップ機能は完了しますが、動作するサイトが表示されません。ブラウザには「サーバーが応答していません」とだけ表示されます。
docker psを見ると、「app」コンテナは起動しており、ポート80と443で待ち受けています。ufwはこれらのポートを許可していると報告しています。
しばらくの間、Debianのサイトはnginxのデフォルトウェルカムページを表示していましたが、今はそれも応答しなくなっています。
私は開発者やウェブのエキスパートではないので、どうトラブルシュートすればよいか分かりません。Grokに助けを求めましたが、今のところ何も解決していません。
どうぞ、ご助力いただけると幸いです。
pfaffman
(Jay Pfaffman)
2
パブリックインターネット上に公開されておらず、ドメイン名がそれらを指していない場合、標準的なインストールはできません。
Install Discourse on a residential internet with Cloudflare Tunnel を参照してください。
「いいね!」 1
tknospdr
(David Muszynski)
3
私は公開されている静的IPアドレスと、そのアドレスを指すドメイン名を持っています。
通常はワイルドカードAレコードを使用して任意のホストをそのIPにポイントさせていますが、トラブルシューティングをしていると、Cloudflare DNSのプロキシされたアドレスとDiscourseがうまく連携しない可能性があるという投稿を見つけたため、そのレコードを専用のAレコードにして、プロキシをオフにしました。
pfaffman
(Jay Pfaffman)
4
discourse-setup を実行しましたか?接続テストはパスしましたか?
tknospdr
(David Muszynski)
5
私は「ブートストラップ関数」という用語を正しく使っていますか?
私たちが同じことを話しているか確かにしたいです。
./discourse-setupがブートストラップなのですよね?
つまり、「それがブートストラップする」と言い、コンテナが稼働している場合、その最初に行われる接続テストに合格したことになります。
すべて理解できますか?
pfaffman
(Jay Pfaffman)
6
まあ、そんなところです。app.ymlを作成してから、./launcher bootstrap appを実行します。
DNSが正しく動作していない状態で何度も実行した場合、Let’s Encryptのレート制限に引っかかることがあります。簡単な解決策は1週間待つか、別のドメイン名を使うことです。
そのマシン上で他に何も動いていませんか?
そして、discourse-setupを実行したときに、自分自身に接続できないというエラーは出ませんでしたか?
tknospdr
(David Muszynski)
7
各VMで1回しか実行しておらず、それぞれ異なるホスト名を使用しました。
他に何も実行されていない、真新しいVMです。実際のハードウェアでは他のものが実行されています。しかし、それらはホストとは別の内部IPアドレスを持っています。
はい、その通りです。
tknospdr
(David Muszynski)
8
インストール出力で見つかったエラーはありますが、どれも重大な問題ではないようです:
690:M 2025年4月30日 22:05:22.859 # 警告: サーバーのTCPリスニングソケット *:6379 の作成に失敗しました: バインド: アドレスは既に使用中
690:M 2025年4月30日 22:05:22.859 # ポート6379(TCP)でのリスニングに失敗しました(中止)。
109:M 2025年4月30日 21:59:42.411 # 警告 メモリ過剰コミットを有効にしてください!これが無効の場合、バックグラウンド保存やレプリケーションが低メモリ状態で失敗する可能性があります...
2025-04-30 21:59:41.125 UTC [60] postgres@postgres ERROR: データベース「discourse」は既に存在します
2025-04-30 21:59:41.274 UTC [63] postgres@discourse ERROR: ロール「discourse」は既に存在します
WARN: Gem::Specification.reset中に未解決または曖昧な仕様がありました:
stringio ( 0)
利用可能/インストール済みのバージョン:
- 3.1.7
- 3.1.5
- 3.1.1
WARN: 未解決の仕様をクリアしています。'gem cleanup 'を試してください。
問題を報告してください。
Embroiderの次のバージョンでは設定'staticAddonTrees'はtrueにデフォルト変更され、オフにできなくなります。準備のために、Embroiderの設定に'staticAddonTrees: true'を設定してください。
同様に、'staticAddonTestSupportTrees'も次のバージョンではtrueにデフォルトになり、オフにできなくなります。設定に'staticAddonTestSupportTrees: true'を追加してください。
Node.jsのヒープサイズ制限が2048MB未満です。--max-old-space-size=2048とCHEAP_SOURCE_MAPS=1を設定してください。
-e DISCOURSE_SMTP_DOMAIN=discourse.example.com
[BABEL] 注意: コードジェネレータが/var/www/discourse/app/assets/javascripts/discourse/ember/ember-template-compiler.jsのスタイルを最大500KB超のため最適化解除しました。
[BABEL] 注意: コードジェネレータが/var/www/discourse/app/assets/javascripts/discourse/ember/ember.jsのスタイルを最大500KB超のため最適化解除しました。
あなたの仮想マシン(VM)の仕様は何ですか?具体的には、VCPUsやRAMがどのくらい割り当てられていますか?
これを4 GBのRAMに増やすと役立ちますか?メモリの要件が上がった可能性があります。
「いいね!」 1
tknospdr
(David Muszynski)
12
ポート80が既に使用中で、外部IPも一つしかないため、ドメインのチェックはセットアップ中に成功していたものの、ホスト側のポートを変更しないと動作しなかったことに気づきませんでした。
私は内部でNPMを使用しています。
動作させるための手順:
- ホスト側のポートを7080に変更(http用)
- プロキシマネージャを通じてトラフィックを流すので、LEスクリプトを無効化して簡素化
- アプリを更新
- 逆プロキシで’ext IP:80’を’int IP:7080’に渡し、その後コンテナがポートを逆転させました… そして彼らはホーキー・ポーキーを踊りながら回転しました。
これまでのところ、すべて正常に動作しているようです。
「いいね!」 2