Ich bekomme das Problem Ihre Docker-Installation funktioniert nicht richtig, nachdem ich ./launcher rebuild app. ausgeführt habe.
Der Fehler lautet docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.
…Ich sehe einen der häufigsten Tipps zur Behebung dieses Problems ist ./launcher cleanup, aber bevor ich das tue, möchte ich sichergehen, dass es sicher zu verwenden ist, da ich Folgendes erhalte:
WARNUNG! Dies entfernt alle gestoppten Container.
WARNUNG! Dies entfernt alle Images, denen kein Container zugeordnet ist.
Hilft das? Ich möchte nur sicherstellen, dass ich hier nichts Wichtiges lösche.
Das Ausführen von ./launcher start app gibt denselben Fehler aus:
docker: failed to register layer: Error processing tar file(exit status 1): write /usr/lib/x86_64-linux-gnu/libx265.a: no space left on device.
See 'docker run --help'.
Your Docker installation is not working correctly
…daher weiß ich immer noch nicht, ob die Antwort auf die Frage lautet: Ist es sicher, ./launcher cleanup zu verwenden, wenn die Website nicht läuft?
Aus dem Screenshot unter ‘docker images’ im oberen Beitrag scheint es viele ältere Images zu geben, aber ich weiß nicht, wie ich sie gezielt löschen kann und ob dies Probleme verursachen würde.
Wenn der Docker-Container läuft, wird er den Container nicht löschen. Wenn der Container nicht läuft, wird er den Container löschen, aber Sie können einen neuen mit ./launcher rebuild app neu erstellen.
Vielen Dank, aber es ist mir immer noch nicht ganz klar – Docker ist nicht meine Stärke, daher weiß ich nicht, ob das Löschen und Neuerstellen eines Containers etwas auf meiner Website durcheinander bringen würde … Wäre es sicherer, die App zuerst zum Laufen zu bringen, indem etwas Speicherplatz freigegeben wird? Zum Beispiel so:
Zuerst etwas Speicherplatz freigeben, indem ein bestimmtes Image zum Löschen ausgewählt wird
Dann ./launcher start app ausführen
Sobald die App läuft: ./launcher cleanup
… ich bin mir nicht sicher, ob diese Vorsicht nötig ist. Vielleicht würde es ausreichen, einfach ./launcher cleanup auszuführen, ohne etwas Wichtiges zu löschen, auch wenn meine App nicht läuft.
Aber falls Sie denken, dass der obige Ansatz eine Option sein könnte: Kennen Sie den Befehl, um ein bestimmtes Image zum Löschen auszuwählen (Schritt 1 oben)? Sehen Sie unten meine Optionen für die zu löschenden Images.
Ich würde zuerst ein oder zwei Backups löschen? Das sollte Ihnen genügend Platz verschaffen, damit die Dinge funktionieren.
Wenn Sie ./launcher start app ausführen, dann löscht ./launcher cleanup nicht Ihr Image, das funktioniert, und Ihre Website wird während des Bereinigungsvorgangs weiter funktionieren.
Wenn Sie aus irgendeinem Grund einen Fehler machen und Ihr funktionierendes Image löschen und kürzlich ein Upgrade durchgeführt haben, besteht eine ziemlich gute Chance, dass Sie einfach ./launcher rebuild app ausführen und wieder in Ordnung sind.
Wenn Sie beim Neuerstellen einen Speicherfehler erhalten haben, würde ich weitere 1 GB Swap hinzufügen, obwohl dies Ihr Festplattenspeicherproblem verschärft (Es klingt, als ob Sie sich auf einem kleinen Droplet mit 25 GB RAM befinden, was gerade noch ausreicht). Ich würde vor jedem Neuerstellen einen ./launcher cleanup ausführen, oder vielleicht haben Sie einfach eine Menge Backups und sollten diese nach S3 verschieben ([Konfigurieren Sie einen S3-kompatiblen Objektspeicheranbieter für Uploads](Configure an S3 compatible object storage provider for uploads --Sie können nur Backups machen, Sie müssen nicht alle Assets wie dort beschrieben machen).
Der zweite Fehler war kein Speicherfehler, aber ich konnte nicht identifizieren, was der neue Fehler war: daher der Arzt.
Jedenfalls hat ./discourse-doctor es gelöst, ich hätte nur gerne gewusst, was tatsächlich passiert ist.
Vielen Dank für Ihre Hilfe!
Meine Vermutung war, dass Sie RAM (Arbeitsspeicher) mit Speicherplatz verwechseln. Der Speicherfehler kann auftreten und verschwinden, und der Fehler “Fehler 127” ist kryptisch und leicht zu übersehen.