Launcher neu aufbauen, App die neuesten Discourse von GitHub ziehen

Hallo,

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.

Hat jemand etwas Ähnliches gemacht?

Sind Sie besorgt über die Stabilität der Version?

Warum wechseln Sie nicht einfach zur stabilen Version?

Ich verwende die stabile Version 3.2.0.

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.

Verwenden Sie eine Standardinstallation?

Wenn ja, warum führen Sie nicht einfach den Befehl rebuild aus?

FYI-Updates für stabile Versionen können wichtig sein – sie enthalten normalerweise Sicherheitslücken oder wichtige Fehlerbehebungen.

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.

Wenn Sie den Container neu starten möchten, ohne ihn neu zu erstellen, führen Sie einfach Folgendes aus:

./launcher restart app

Warum müssen Sie neu erstellen ohne zu aktualisieren – was ist Ihr Ziel?

Stabile Updates führen höchstwahrscheinlich keine Änderungen ein, die zu Problemen führen.

1 „Gefällt mir“

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.

2 „Gefällt mir“

Falls beim Hinzufügen oder Entfernen eines Plugins ./launcher restart app die Instanz nicht aktualisiert.

1 „Gefällt mir“

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.

1 „Gefällt mir“

Ich habe die folgenden Änderungen am Launcher vorgenommen

echo "    --pull-git                 Zieht das neueste Git-Repository"
  echo "    --pull-image               Zieht das neueste Docker-Image"

pull_git=false
pull_image=false
rebuild)
      if [ "$(git symbolic-ref --short HEAD)" = "master" ] && [ "$pull_git" = true ]; then
        git branch -m master main
        git fetch origin
        git branch -u origin/main main
        git remote set-head origin -a
      fi
....

Damit kann ich jedes Mal, wenn ich den Rebuild durchführe, ein Update vermeiden. Es ermöglicht die Installation des Plugins.

Wenn Sie Probleme mit diesen Plugins haben, erwähnen Sie dies unbedingt, wenn Sie ein neues Thema beginnen.

Nein, das tut es nicht, zumindest nicht richtig.

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.

1 „Gefällt mir“