./launcher startet die App-Neubildung komplett neu

Unerfahrener Benutzer hier, mit den folgenden paar Zeilen aus einem Transkript, um die Diskussion anzuregen:

# ./launcher enter app                                                                                                                                                                         
x86_64 arch erkannt.                                                                                                                                                                                                   
                                                                                                                                                                                                                        
WARNUNG: Wir werden jetzt mit dem Herunterladen des Discourse-Basisimages beginnen                                                                                                                                                     
Dieser Vorgang kann je nach Netzwerkgeschwindigkeit einige Minuten bis zu einer Stunde dauern                                                                                                                        
                                                                                                                                                                                                                        
Bitte haben Sie Geduld                                                                                                                                                                                                       
                                                                                                                                                                                                                        
2.0.20240602-0023: Herunterladen von discourse/base                                                                                                                                                                          
728328ac3bde: Extrahieren [=============================>                     ]  18.68MB/31.43MB                                                                                                                         
1c0ca3c0af81: Download abgeschlossen
...

Das ist nicht das, was ich erwartet habe.

Wenn ich den Befehl docker ps eingebe, sehe ich, dass bereits ein Container mit einer Art von Discourse läuft. Alles, was ich tun möchte, ist, eine Shell in diesem laufenden Container zu erhalten … nicht die gesamte Anwendung neu zu erstellen. Tatsächlich scheint der Befehl enter für ./launcher (ungefähr in Zeile 746) des Skripts ./launcher das zu tun, was ich erwartet habe … nämlich den Befehl auszugeben:

docker exec -it app /bin/bash

Gibt es einen zwingenden Grund, vorher noch viel andere Arbeit zu erledigen? Wenn ja, bitte erleuchten Sie mich; wenn nicht, kann vielleicht jemand mit Erfahrung und Können diese Frage in einen nützlichen Vorschlag umwandeln. Danke.

1 „Gefällt mir“

Ja, das macht es schon seit mindestens einem Jahr. Glücklicherweise dauert das Herunterladen eines neuen Images normalerweise nicht sehr lange, und es scheint nicht viel anderes zu tun, bevor es Sie in die Shell bringt.

Es scheint jedoch den Speicherplatz auf dem Laufwerk unnötigerweise mit einer Reihe von Images zu belasten, die nie verwendet werden. Vielleicht haben sie einen Zweck, der nicht sofort ersichtlich ist.

Sieht das wie ein Fehler aus? Warum sollte der Versuch, den Container zu betreten, ein neues Image herunterladen?

Mir ist aufgefallen, dass dies nur einmal geschieht … wenn Sie ./launcher enter app ein zweites Mal ausführen, wird die Bildprüfung übersprungen. Vielleicht gibt es hier einen Kompromiss …

Liegt das nicht daran, dass das Bild zu diesem Zeitpunkt bereits heruntergeladen wurde?

Ja, aber warum sollte es das überhaupt tun?
Sie versuchen, in den vorhandenen Container einzudringen. Das ist alles.

Es führt git pull aus und zieht ein neues Image, da es Probleme gab, als es dies nicht tat und viele Leute Schwierigkeiten hatten, weil die Dinge veraltet waren.

Wenn Sie einen Grund haben, keinen Pull durchzuführen, führen Sie stattdessen einen docker run-Befehl aus.

1 „Gefällt mir“

Ich dachte, das könnte der Grund sein. Steinharte Logik mit den Eigenheiten der Benutzererwartungen in Einklang zu bringen, ist nie einfach.

Das musste ich auf die harte Tour lernen. Jetzt, wo ich es weiß, kann ich die Designentscheidung verstehen.

Vielen Dank für die Antworten und die ausgezeichnete Software.

1 „Gefällt mir“

Es wird nicht der gesamte Container neu erstellt. Es wird nur ein git pull von docker_discourse ausgeführt, frische Basis-Images heruntergeladen und dann wie erwartet in den Container eingefügt. Deshalb geschieht dies nach dem ersten Mal nicht mehr. Es sei denn, Sie haben extrem wenig Speicherplatz oder 10-30 Sekunden sind viel Zeit, ist es kein wirkliches Problem.

2 „Gefällt mir“