Könnte mir jemand Ratschläge geben, wie man ein Discourse Docker-Image erstellt, das eine Reihe von Plugins integriert hat, anstatt sie über die Benutzeroberfläche zu installieren?
Hintergrund: Wir möchten die neueste Discourse-Build, d.h. discourse:stable, nutzen, und nach dem, was ich in der Installationsanleitung und anderer Dokumentation gelesen habe, können wir diese als Basis-Image in unserer eigenen Dockerfile verwenden und dann etwas tun wie:
RUN cd /var/www/discourse/plugins && \
git clone https://github.com/discourse/discourse-chat-integration.git
Dies würde das Plugin discourse-chat-integration in den Build aufnehmen. Dann können wir zur Laufzeit alle erforderlichen Umgebungsvariablen übergeben, d.h. DISCOURSE_HOSTNAME, DISCOURSE_SMTP_DOMAIN, DISCOURSE_DB_HOST usw., anstatt diese in der Datei app.yml fest zu kodieren.
Wenn jemand dazu Ratschläge geben könnte, wäre das sehr willkommen.
Sie können Plugins nicht über die Benutzeroberfläche installieren. Sie installieren sie über die YML-Datei. Wenn Sie einen Container verwenden, der noch nicht unterstützt wird und den Sie nicht selbst mit dem Launcher erstellt haben, würden Sie etwas Ähnliches tun, wie Sie vorschlagen.
Aber dieses Plugin ist im Core enthalten (aber vielleicht noch nicht in Stable?).
Sie sind in der YML-Datei nicht wirklich fest codiert. Die YML-Datei wird verwendet, um den Container zu erstellen und zu starten. Sie können ihn erstellen und ihn dann starten, wie auch immer Sie möchten. Sie können ./launcher start-cmd container-name verwenden (oder etwas Ähnliches, Sie können im Launcher nachsehen, ob ich es falsch verstanden habe).
Was ich denke, was Sie tun möchten, ist, weiterhin den Launcher zu verwenden, das Plugin hinzuzufügen, ./launcher bootstrap app für den Container auszuführen und ihn dann so zu starten, wie Sie möchten. Sie können ihn sogar in ein Repository pushen, von wo aus Sie ihn von einer anderen Maschine starten können.