スペースが少ない場合のアップグレード:アプリを停止し、クリーンアップしてからアプリを再構築しますか?

皆さん、こんにちは。愚かな質問かもしれませんが、それでも尋ねます。

このおなじみのループに陥っていました。

  1. アップグレードに失敗しました。
  2. ./launcher rebuild app を試しましたが、ディスク容量が不足していました。(5 GB 未満)
  3. ./launcher cleanup を実行したところ、ディスク容量が解放されました。(5 GB 以上)
  4. ステップ 2 に戻る。

まだどの操作が安全か(サイトデータを破壊しないか)をよく知らないため、バックアップから復元する必要がないことを願いながら、不安げに手探りで進めました。最終的に、私にとってはうまくいった次の手順を実行しました。

  1. ./launcher stop app
  2. ./launcher cleanup を実行したところ、以前よりも大幅に多くの容量がクリーンアップされ、すぐに不安になりました。
  3. git pull
  4. ./launcher rebuild app

これはうまくいっただけでなく、データはそのまま、以前よりも約 2 GB 多い空き容量でサイトを実行することができました。

今、私がやったことが brilliant なのか、obvious なのか、それとも risky でたまたまうまくいっただけなのか、よくわかりません。なぜそのような結果になったのか、そしてそれが sensible なアップグレード方法だったのかをもう少し理解したいと思います。

よろしくお願いします。

「いいね!」 1

docker はコンテナをビルドする際に多数のファイルを作成します(ビルドしたコンテナも含む)。新しいコンテナをビルドしても、古いコンテナ(およびディスクイメージ)は残ります。クリーンアップを実行すると、これらが削除されます。

クリーンアップコマンドは、discourse が実行中に実行する方が少し安全です。なぜなら、クリーンアップコマンドは実行中のコンテナを削除しないからです。もし再構築で何か問題が発生した場合、古いコンテナが存在すれば再起動できます。

したがって、上記のステップ (1) は削除し、ステップ (3) は不要です。なぜなら ./launcher はプルを実行するからです(昔はそうではありませんでした)。

間違っているかもしれませんが、それは最初のブロックで機能しなかったのと同じ2つの手順(2〜4)の結果にはなりませんか?

ちなみに、これはこのトピックの続きのように見えます:

「いいね!」 2

おっと。はい。読み返していませんでした。

ですから、ディスク容量が2つのイメージを格納するのに十分でないほど逼迫している場合は、新しいイメージを構築する前にすべてを破棄する必要があり、何らかの理由で新しいイメージを構築できない場合は、まずい状況になります。その場合は、ディスク容量を増やす必要があります。最も簡単な方法は、バックアップをS3に移動することです。

「いいね!」 1

「ディスク容量が非常に少ない」という言葉に驚いています。クリーンアップを実行し、7.9 GB の空き容量があるのに、./launcher rebuild app を実行すると完了しません。アプリを再構築したいときに 7.9 GB の空き容量しかないのは、本当にそんなに少ないのでしょうか?!

(更新:これで、これがどのように起こるのか理解できました。ウェブ検索で見つけられるように、これを無関係な人のためにここに残しておきます。皆さん、このスレッド全体を読んでください!)

ありがとうございます!まさにその問題です!そして、これが重要な点だと思われます:"Less than 5GB of free space" — not true! 👀 - #3 by Simon_Manning

特に:

この特定のリビルドでは、新しいベースイメージをダウンロードする必要がありました

この情報を、アップグレードプロセスに何らかの形で含めることは非常に役立ちます。「新しいベースイメージをダウンロードする必要があるため、通常よりも3GB多くのスペースが必要になる可能性があります。スペースが不足している場合は、それが理由である可能性が高いです。」といった事前警告として、またはアップグレード/リビルドプロセスがスペース不足になった場合に、より詳細なエラーとして表示されると良いでしょう。そうでなければ、「ほら、必要なスペースは(すべて)あります!」(ピカードが腕を広げている)という無限ループに陥ってしまいます。

また、「信頼してくれ、俺は十分なディスクスペースを持っている」という意味で ./launcher rebuild app --skip-prereqs を使用するオプションを見つけるために、それほど深く掘り下げる必要がないことも非常に役立ちます。警告は太字、赤、72ポイントのフォントで表示してください。

この「新しいベースイメージによりアップグレードが不安定になる」という問題は、私たちが忘れてしまうほど頻繁には発生しませんが、アップグレード中に問題を引き起こします。この問題に対処する方法について、私たちが知っていることを集約した記事を掲載するのに適切な場所はどこでしょうか?

ありがとうございます。

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.