Seit längerem habe ich nicht wirklich verstanden, was pups ist, und ich bin ehrlich gesagt immer noch etwas verwirrt.
![]()
Mir ist klar, dass die Discourse-Docker-Images konfiguriert werden müssen. Anstatt dies über Bash-Skripte zu tun, geschieht dies über YAML-Dateien (die Bash-Skripte erzeugen), die hier zu finden sind: https://github.com/discourse/discourse_docker/tree/master/samples.
Das Starten der Docker-Container und die Konfiguration über Pups sind im Launcher-Skript hier miteinander verknüpft:
Die von mir verlinkte Zeile ist für mich besonders interessant. Sie scheint Pups dazu zu bringen, im Docker-Container ausgeführt zu werden. Ich habe versucht, eine test.yml-Datei über Pups auszuführen, und offensichtlich wurde sie nicht in einem Docker-Container ausgeführt. Stattdessen wurde einfach ein Bash-Skript (Bash-Befehle?) erzeugt, das sofort ausgeführt wurde.
Meine Frage ist: Wie bewirke ich, dass Pups im dev-Docker-Container ausgeführt wird? Die Zeile, auf die ich hingewiesen habe, ist sehr lang, und ein Teil davon scheint für meinen Anwendungsfall unnötig zu sein. Vielleicht kann mir jemand ein einfaches Beispiel geben, wie man die Ausgabe von Pups mit einem Docker-Container kombiniert.
Im Grunde möchte ich einen Pups-Befehl hinzufügen, der dem im Launcher-Skript ähnelt. Am Ende des boot_dev-Skripts (oder als separates Skript nach dem boot_dev-Skript).
Hintergrundinformationen:
Grund dafür → Ich möchte einen langlaufenden Prozess zu runit hinzufügen. @merefield hat mich auf sein Frotz-Plugin als Referenz verwiesen, wie man das macht:
Die Frage ist: Wie mache ich das lokal, um die Pups-Eingabe zu testen? Soweit ich verstehe, wird die Docker-dev-Instanz nicht über eine YAML-Datei und Pups konfiguriert. Die Pups-Eingabe des Frotz-Plugins bezieht sich auf die server.yml-Datei beim Installieren des Plugins, also bin ich im Grunde verwirrt darüber, wie man das lokal macht.
Okay, danke ![]()
EDIT:
Okay, ich habe diese Art von Zeilen gefunden:
Das bedeutet also, dass Pups einfach im Container ausgeführt werden muss. Ich weiß nicht, warum ich dachte, es würde nur Befehle generieren. Ich habe diesen Satz in der README gesehen:
Pups ist eine kleine Bibliothek, mit der Sie den Prozess zur Erstellung von Unix-Images automatisieren können.
Das ergab für mich wenig Sinn, und natürlich hat mein Unterbewusstsein die Kontrolle übernommen.
Das Argument
--gen-docker-run-argswird verwendet, damit die Ausgabe von Pups im Formatdocker run <Argumente>vorliegt.
Irgendwie hat mich das dazu gebracht, Pups als etwas zu konzeptualisieren, das YAML-Dateien in Bash-Befehlsausgaben umwandelt. Wie ein YAML-zu-Bash-Compiler. Aber eigentlich ist es eher ein YAML-Interpreter. Es erstellt nicht nur die Befehle, sondern führt sie auch sofort aus.