リビルド中にエラー: registry.yarnpkg.com ESOCKETTIMEDOUT

残念ながら、単に次を実行しても、フォーラムは復旧しません。

./launcher start app

いずれにせよ、さらに実験を行いました。具体的には、失敗した yarn コマンドを Docker イメージ内で手動で実行してみました。

./launcher enter app
cd /var/www/discourse
su discourse
yarn install --frozen-lockfile
... 同じタイムアウトで失敗 ...
yarn config set network-timeout 600000 -g
yarn install --frozen-lockfile
... 成功 ...

これにより、タイムアウトを増やすことで問題が解決することが確認されました。

残る疑問は、./launcher rebuild app の実行中にもタイムアウトを増やす方法です。

web.template.yml ファイルは確かに discourse/containers 内にあり、Docker イメージの外にあります。Discourse のインストールが標準の /var/discourse ではなく、非標準の場所にあるため、最初に見つけられませんでした。

上記で参照された投稿の修正は 159 行目を指していますが、おそらくアップデートにより、それはもはや正しくないようです。しかし、188 行目付近には次の行があります。

  - exec:
      cd: $home
      hook: yarn
      cmd:
        - |-
          if [ "$version" != "tests-passed" ]; then
            rm -rf app/assets/javascripts/node_modules
          fi
        - su discourse -c 'yarn install --frozen-lockfile && yarn cache clean'

投稿では、新しいセクションを挿入してタイムアウトを設定することを提案していますが、具体的な指示はありません。YAML、pups、yarn、またはそれらが Discourse でどのように使用されているかについてはあまり詳しくないので、推測はしたくありませんでした。代わりに、元のセクションに次のような変更を試みました。

  - exec:
      cd: $home
      hook: yarn
      cmd:
        - |-
          if [ "$version" != "tests-passed" ]; then
            rm -rf app/assets/javascripts/node_modules
          fi
        - su discourse -c 'yarn config set network-timeout 600000 -g && yarn install --frozen-lockfile && yarn cache clean'

./launcher rebuild app コマンドは、今では非常に長い時間(2 時間以上!、以前よりもはるかに長いです)がかかります。良いニュースは、フォーラムがオンラインに戻ったことです!素晴らしい、助けてくれてありがとう。

コマンドを containers/app.yml に追加することで、タイムアウトを増やす方法はありますか?すべてのカスタム設定を 1 つのファイルにまとめることができるので、それは便利でしょう。

2 コンテナ セットアップを使用することは素晴らしいアイデアのように思えます。これが可能であることを知りませんでした。おそらく、これを参照しているのでしょう: Move from standalone container to separate web and data containers; 試してみます。追加のアドバイスがあれば歓迎します。

ブラウザから Discourse インスタンスのアップデートを実行すると、./launcher rebuild app も実行されますか?フォーラムは一時的にダウンしますか?これまで、プロセスのほとんどの間フォーラムはオンラインのままであるという印象を持っていましたが、確信はありません。これらのことは私には決して明確ではなく、本当に理解する時間がありませんでした。回答や追加情報へのポインタを歓迎します。

「いいね!」 1