コマンドの標準インストールの長い一時停止: cd /var/www/discourse su discourse -c 'bundle install --retry 3 --jobs 4'

ええ、それは確かにネットワークの問題です。私のサーバーは中国にあるためです。
解決策を見つけましたので、ここに中国語でコピーします。


中国国内でのDiscourseのインストール 在国内环境下安装Discourse - 主页 - 第 页 - IzIy's Files - MyPress - MyPre.Cn

DiscourseのバージョンアップとメンテナンスはGitHub上で行われ、Discourse自体はRubyで書かれています。

Tencent CloudのCVM、Lightweight Server、Alibaba CloudのECSなど、いずれも海外サイトへのアクセスが遅いという問題があります。これは主に、国内のgitリポジトリをサポートするための帯域制限操作によるものです。

GitHubでホストされているDiscourseをクローンする際に、クローンリンクのgithub.comをgithub.com.cnpmjs.orgに置き換えることでGitHubへのアクセスを高速化できます。例えば:

git clone https://github.com/discourse/discourse_docker.gitgit clone https://github.com.cnpmjs.org/discourse/discourse_docker.git に置き換えます。

さらに、./discourse-setup を実行する際、インストーラーはDocker内にいくつかの追加プロジェクトをインストールします。

例えば、gem update もRubyのミラーを追加する必要があります。

設定ファイルを変更することでRubyのミラーアドレスを追加できます。主な関連ファイルは docker.git です。

さらに、./discourse-setup を実行する際、インストーラーはDocker内にいくつかの追加プロジェクトをインストールします。

例えば、gem update もRubyのミラーを追加する必要があります。

設定ファイルを変更することでRubyのミラーアドレスを追加できます。主な関連ファイルは以下の通りです。

discourse/templates/web.template.yml
discourse/containers/app.yml

上記のファイルで gem update を呼び出している箇所を探し、その前に以下の設定ミラーサイトのステートメントを追加します。

gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem update bundler

bundle については、bundle config mirror.https://rubygems.org https://gems.ruby-china.com を使用してミラーサイトを追加できます。

主な変更点は以下の通りです。

diff --git a/templates/web.template.yml b/templates/web.template.yml
index 28fb22d..bb0010c 100644
--- a/templates/web.template.yml
+++ b/templates/web.template.yml
@@ -86,6 +86,9 @@ run:
       cd: $home
       hook: code
       cmd:
+        - git remote -v
+        - git remote set-url origin https://github.com.cnpmjs.org/discourse/discourse.git
+        - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
         - git reset --hard
         - git clean -f
         - git remote set-branches --add origin master
@@ -145,6 +148,7 @@ run:
       hook: web
       cmd:
         # ensure we are on latest bundler
+        - gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
         - gem update bundler
         - find $home ! -user discourse -exec chown discourse {} \\+

@@ -152,6 +156,9 @@ run:
       cd: $home
       hook: bundle_exec
       cmd:
+        - su discourse -c 'gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/'
+        - su discourse -c 'gem update bundler'
+        - su discourse -c 'bundle config mirror.https://rubygems.org https://gems.ruby-china.com'
         - su discourse -c 'bundle install --deployment --retry 3 --jobs 4 --verbose --without test developme

   - exec:
...skipping...

メール設定の問題について
フォーラムでは通常、各種認証コード、ログインメッセージ、パスワードリセット、メッセージ通知などの送信に使用されるメールサーバーが必要です。

NetEaseの無料企業メール(ym.163.com)でこの要件を満たすことができます。QQメールでSMTPサービスを有効にすることも可能です。もちろん、有料のメールを購入することもできます。

NetEaseの無料企業メールはデフォルトでSMTPサービスが有効になっています。以下はapp.ymlの設定例です。DiscourseはSSL接続をサポートしていないようですので、ここでは直接SMTPサービスを使用します。start_tls機能を明示的にオフにする必要があることに注意してください。

  DISCOURSE_SMTP_ADDRESS: smtp.ym.163.com
  DISCOURSE_SMTP_PORT: 25
  DISCOURSE_SMTP_USER_NAME: mail@getblog.cn
  DISCOURSE_SMTP_PASSWORD: "password"
  DISCOURSE_SMTP_ENABLE_START_TLS: false           # (optional, default true)
  DISCOURSE_SMTP_DOMAIN: getblog.cn    # (required by some providers)

また、ウェブサイト管理者のメールアドレスは DISCOURSE_SMTP_USER_NAM と同じであってはなりません。そうしないと、登録メールを受信できない可能性があります。

DockerでDiscourseフォーラム/BBSシステムをインストール(Nginx)

中国国内にお住まいの場合は、ミラーリングの高速化が必要です。設定ファイル内の templates ブロックを見つけ、国内ミラー templates/web.china.template.yml を追加します。

templates:
  - "templates/postgres.template.yml"
  - "templates/redis.template.yml"
  - "templates/sshd.template.yml"
  - "templates/web.template.yml"
  - "templates/web.china.template.yml"