Ich habe Discourse bereits installiert und am Laufen. Jedes Mal, wenn ich die App neu erstelle, zieht sie das Launcher-Repository, das Docker-Image discourse/base und das Discourse-Repository.
Ich möchte dieses Verhalten einschränken, sodass die Neuerstellung keine Updates prüft und diese nicht automatisch herunterlädt, es sei denn, ein bestimmter Parameter wird übergeben.
Die Absicht ist, nur aus dem Git-Hub- oder Docker-Hub-Repository zu ziehen, wenn wir es wollen, und nicht jedes Mal, wenn wir den Container neu erstellen.
Ja, ich verwende den Standard-Standalone-Ansatz. Ich verstehe die Notwendigkeit, die App auf dem neuesten Stand zu halten. Meine Idee ist es, ein Flag zum Launcher hinzuzufügen, wenn ich das Repository aktualisieren möchte.
Der Sinn von Stable ist mangelnde Veränderung. Warum baut ihr überhaupt neu auf?
Der Grund, warum es den Container zieht, ist, ihn mit den Anforderungen des Discourse-Codes in Parität zu halten.
Wenn du etwas tun möchtest, wie z. B. den Container zu betreten, ohne einen Pull durchzuführen, kannst du
docker exec -it app bash
Und wenn du ein Plugin hinzufügen möchtest, ohne neu aufzubauen, könntest du in das Plugin-Verzeichnis wechseln und es klonen und dann die Datenbank migrieren, aber du musst immer noch sicherstellen, dass du den richtigen Commit des Plugins für strangle) stable erhältst.
Da stabile Veröffentlichungen relativ selten sind, stellen sie nicht oft Breaking Changes dar und beinhalten normalerweise wichtige Sicherheitsupdates, wenn es ein Update gibt. Daher verstehe ich Ihre Anforderung nicht.
Meiner Meinung nach ist das Hinzufügen eines Plugins ein guter Vorwand, um alle verfügbaren Updates zu aktualisieren und sicherzustellen, dass Sie sie übernommen haben.
Ein Nicht-Update auf Stable ist meiner Meinung nach eine schlechte Praxis, da Sie dadurch länger bekannten Schwachstellen ausgesetzt sein könnten.
Es funktioniert möglicherweise mit reinen API-Plugins, aber jeder JavaScript-Code oder neue Plugins müssen kompiliert werden, was im Build-Prozess geschieht.
Daher müssen Sie in den meisten Fällen einen Neubau durchführen, um ein neues Plugin hinzuzufügen.
Das andere Problem, das Sie haben, ist, dass die Änderung von Core-Build-Skripten Sie in große Schwierigkeiten bringen kann, wenn Sie nicht vorsichtig sind, insbesondere wenn es eine signifikante Änderung der Kernskripte gibt.