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

**URL:** https://meta.discourse.org/t/upgrading-when-space-seems-low-stop-app-then-cleanup-then-rebuild-app/293627
**Category:** Self-hosting
**Tags:** server-resources
**Created:** [2024 年 1 月 31 日午後 1:01 UTC](https://meta.discourse.org/t/upgrading-when-space-seems-low-stop-app-then-cleanup-then-rebuild-app/293627 "2024-01-31T13:01:41Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![jbrains](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jbrains/32/208183_2.png) [@jbrains](https://meta.discourse.org/u/jbrains)
#### Post date: [2024 年 1 月 31 日午後 1:01 UTC](https://meta.discourse.org/t/upgrading-when-space-seems-low-stop-app-then-cleanup-then-rebuild-app/293627/1 "2024-01-31T13:01:41Z")

</div>

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

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

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 なアップグレード方法だったのかをもう少し理解したいと思います。

よろしくお願いします。

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2024 年 1 月 31 日午後 2:50 UTC](https://meta.discourse.org/t/upgrading-when-space-seems-low-stop-app-then-cleanup-then-rebuild-app/293627/2 "2024-01-31T14:50:49Z")

</div>

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

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

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

---

<div class="post-metadata">

### Author: ![Firepup650](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/firepup650/32/465200_2.png) [@Firepup650](https://meta.discourse.org/u/Firepup650)
#### Post date: [2024 年 1 月 31 日午後 2:53 UTC](https://meta.discourse.org/t/upgrading-when-space-seems-low-stop-app-then-cleanup-then-rebuild-app/293627/3 "2024-01-31T14:53:10Z")

</div>

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

> [@jbrains](#):
>
> 1. `./launcher rebuild app` を試しましたが、ディスク容量が不足していました。（5 GB未満の空き容量。）
> 2. `./launcher cleanup` を実行したところ、ディスク容量が解放されたようです。（5 GB以上の空き容量。）
> 3. 2に戻る。

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

> [@"Less than 5GB of free space" — not true! eyes](https://meta.discourse.org/t/less-than-5gb-of-free-space-not-true/224517?u=firepup650):
>
> Been running Discourse for years, and my experience has been uniformly awesome except for one recurring problem: Whenever I see “You are running an old version of the Discourse image” on the update screen, I am overtaken by a grim pallor and an overwhelming sense of dread. Why? Because I know I’ll be wrestling my DigitalOcean droplet from the command line—something I generally hate—for a few hours before I can get the upgrade to go through properly. And this time, I can’t seem to get it work…

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [2024 年 1 月 31 日午後 2:58 UTC](https://meta.discourse.org/t/upgrading-when-space-seems-low-stop-app-then-cleanup-then-rebuild-app/293627/4 "2024-01-31T14:58:34Z")

</div>

> [@Firepup650](#):
>
> しかし、それは機能していなかった最初のブロックと同じ2つのステップ（2〜4）の結果になりませんか？

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

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

---

<div class="post-metadata">

### Author: ![jbrains](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jbrains/32/208183_2.png) [@jbrains](https://meta.discourse.org/u/jbrains)
#### Post date: [2024 年 1 月 31 日午後 3:10 UTC](https://meta.discourse.org/t/upgrading-when-space-seems-low-stop-app-then-cleanup-then-rebuild-app/293627/5 "2024-01-31T15:10:29Z")

</div>

> [@pfaffman](#):
>
> ですので、ディスク容量が非常に少なく、2つのイメージを保存する余裕がない場合は、新しいイメージをビルドする前にすべて削除する必要があります。これは、何らかの理由で新しいイメージをビルドできない場合に、あなたを悪い状況に追い込みます。その場合は、ディスク容量を増やす必要があります。最も簡単な方法は、バックアップをS3に移動することです。

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

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

---

<div class="post-metadata">

### Author: ![jbrains](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/jbrains/32/208183_2.png) [@jbrains](https://meta.discourse.org/u/jbrains)
#### Post date: [2024 年 1 月 31 日午後 3:21 UTC](https://meta.discourse.org/t/upgrading-when-space-seems-low-stop-app-then-cleanup-then-rebuild-app/293627/6 "2024-01-31T15:21:55Z")

</div>

> [@Firepup650](#):
>
> ちなみに、これはこのトピックの続きのように見えます。
> 
> 何年もDiscourseを実行してきましたが、私の経験は一様に素晴らしかったのですが、1つの繰り返し発生する問題を除いては、「Discourseの古いバージョンを実行しています」というメッセージがアップデート画面に表示されるたびに、私は顔面蒼白になり、圧倒的な恐怖を感じます。なぜなら、アップグレードを正常に行うために数時間、コマンドラインでDigitalOceanドロップレットと格闘しなければならないことを知っているからです。そして今回、うまくいきません…

ありがとうございます！まさにその問題です！そして、これが重要な点だと思われます：["Less than 5GB of free space" — not true! 👀 - #3 by Simon\_Manning](https://meta.discourse.org/t/less-than-5gb-of-free-space-not-true/224517/3)

特に：

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

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

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

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

ありがとうございます。

---

<div class="post-metadata">

### Author: ![system](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/system/32/443519_2.png) [@system](https://meta.discourse.org/u/system)
#### Post date: [2024 年 3 月 1 日午後 3:22 UTC](https://meta.discourse.org/t/upgrading-when-space-seems-low-stop-app-then-cleanup-then-rebuild-app/293627/7 "2024-03-01T15:22:21Z")

</div>

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