Es gibt Linux Containers (LXC). Es gibt VM-Skripte. Man könnte einen ISO-Installer erstellen.
LXC sind buchstäblich Container.
Für SysAdmins ist dieser Docker-Unsinn überflüssig und sinnlos, wenn man eine Netzwerkeinrichtung mit Firewalls usw. hat.
Ich verstehe, dass dies eine einfache Installation für diejenigen ist, die nicht wissen, wie man Linux benutzt und es absichert, aber für SysAdmins ist es sinnlos, Docker lernen zu müssen. LXC und VMs werden immer viel besser sein als Docker.
Für SysAdmins, die Server verwalten, erstellen wir LXC und VMs in einem separaten Netzwerk. Also habe ich eine dedizierte VM für Discourse erstellt, um dann einen Docker-Container zu erstellen. -_-
Also gibt es jetzt ein Netzwerk im Netzwerk. Eine dedizierte isolierte VM und nur um einen Docker-Container zu erstellen, der von allem isoliert ist -_-
Es gibt keine Anleitung, um es ohne Docker zu installieren, unabhängig davon, ob es mit Support kommt oder nicht. Es gibt keine Anleitung oder Hilfe, um die Host-IP dem Container zur Verfügung zu stellen.
Weil, als sie anfingen, Discourse zu entwickeln, es das Beste war, was es gab.
Wenn sie es heute tun würden, würde ich schätzen, dass das Einzige, was sie anders machen würden, wäre, docker-compose anstelle ihres eigenen benutzerdefinierten launcher-Befehls zu verwenden, der Docker-Images erstellt und startet.
Du musst in einem anderen Internet sein als ich. Nach allem, was ich sehe, benutzt fast jeder, der Software auf mehr als, sagen wir, 5 Servern verwaltet, irgendeine Art von Container zur Verwaltung. Zunehmend führen Entwickler Dinge auf ihren Laptops in Containern aus, um sicherzustellen, dass die Versionen von allem konsistent bleiben.
Selbst die Verwaltung einer Discourse/Rails/Ember-Entwicklungsumgebung auf einem einzigen Laptop ist eine Herausforderung.
Das stimmt. Wenn du ein Forum haben möchtest, das du ohne Docker nutzen kannst, solltest du Discourse nicht verwenden.
Ich unterstütze das. docker-compose wäre 100% besser, da ich gerade einen Crashkurs über Docker und Docker-Compose gesehen habe. Es scheint, dass, wenn Discourse docker-compose verwendet hätte, ich dieses Problem gelöst hätte, ohne einen Beitrag erstellen zu müssen.
docker-compose erledigt die ganze schwere Arbeit, ähnlich wie der Launcher, aber mit docker-compose hätte ich das Netzwerk und die Bridge einfach konfigurieren können.
Ich stimme zu. Ich benutze Container. Nur reine LxC-Container. Keine zusätzliche Software erforderlich. Es ist aber nicht so einfach. Zum Beispiel: Auf einem meiner Server habe ich ein Bronze-Paket, das im Grunde für Entwickler ist. Günstig und einfach einzurichten. Sobald eine Zahlung bestätigt ist, erhält der Hauptserver eine Anfrage, entweder einen lxc-Container oder eine VM zu erstellen, basierend auf der Auswahl des Benutzers, offensichtlich ist ein Domainname erforderlich oder es wird eine benutzerdefinierte Subdomain für den Server (lxc/vm) ausgestellt. Es fordert den Benutzer auch auf, sein eigenes Netzwerk zu konfigurieren, das dann nicht vom Hauptnetzwerk aus zugänglich ist und umgekehrt. Es ist im Grunde ein kleines AWS.
Für die Entwicklung wäre Docker für Laptops und Entwicklungszwecke außergewöhnlich, um die Hauptcomputerdateien und Entwicklungsdateien, einschließlich Netzwerke, zu trennen.
Ich kann dem weder zustimmen noch widersprechen, da ich persönlich nichts mit Discourse/rails/ember entwickelt habe. Das liegt außerhalb meines Zuständigkeitsbereichs und wenn die Entwickler sagen, dass es einfacher ist, bin ich nicht in der Lage, etwas zu widersprechen, das ich nicht weiß.
Das ist mein Problem. Ich habe genug recherchiert über alle verfügbaren Forensoftware und einige davon verwendet.
Meine Optionen reduzierten sich auf 2 Foren:
Discourse
Flarum
Ich habe Discourse als die beste Forensoftware in allen Aspekten gewählt und aufgrund meiner einzigen Erfahrung mit Docker, dem Nginx Reverse Proxy Manager.
Ich dachte, alles, was ich tun musste, war, einige meiner Informationen in die .yml-Datei einzugeben und dann docker-compose up -d auszuführen. Ich lag falsch.
Das Problem, das ich derzeit habe, kann gelöst werden, es wird nur etwas Zeit dauern, es herauszufinden.
Ich weigere mich, Flarum zu verwenden, weil ich Discourse auf vielen Plattformen verwendet habe und keine Beleidigung für andere gute Forensoftware da draußen, aber Discourse ist das beste verfügbare Forum auf dem Markt.
Vielleicht könnte ein Upgrade auf docker-compose helfen
Nach kurzer Recherche, einigen 5-Minuten-Anleitungen und einigen YouTube-Videos.
Nein, Docker ist überhaupt nicht schlecht. Docker ist perfekt für Entwickler, die ihre persönliche Maschine zur Entwicklung oder sogar Arbeitscomputer nutzen. Da die meisten Entwickler Linux nicht als ihr Hauptbetriebssystem verwenden, wäre die Erstellung von LxC-Containern nicht so einfach. Hier kommt Docker ins Spiel. Es unterstützt alle wichtigen Plattformen, sodass Entwickler problemlos zusammenarbeiten können, und der Vorteil ist, dass sie ihr gesamtes System nicht mit Dateien durcheinanderbringen, die nicht vom Hauptbetriebssystem verwendet werden sollen.
Ich könnte eigentlich etwas detaillierter darauf eingehen, aber das neueste Docker/Docker-Compose ist perfekt für Discourse, da ich sehe, dass es viele bewegliche Teile erforderte und es ziemlich einfach ist, diese mit Docker-Compose zu bündeln. Auf diese Weise wissen die Entwickler genau, was zu tun ist, wenn etwas schief geht.
Ich habe eine Idee für Discourse, aber zuerst werde ich meine Installation klären.
Das Hosten von Rails-Anwendungen ist kompliziert. Selbst wenn Sie bereits Postgres, Redis und Ruby auf Ihrem Server installiert haben, müssen Sie sich immer noch um die Ausführung und Überwachung Ihrer Sidekiq- und Rails-Prozesse sowie um die Konfiguration von Nginx kümmern. Mit Docker steht Ihnen unsere vollständig optimierte Discourse-Konfiguration in einem einfachen Container zur Verfügung, zusammen mit einer webbasierten grafischen Benutzeroberfläche, die das Upgrade auf neue Versionen von Discourse so einfach macht wie das Klicken auf eine Schaltfläche.
Sie benötigen keinen Launcher und könnten eine maßgeschneiderte Docker Compose-Installation erstellen, obwohl dies von Ihrer Seite erhebliche Arbeit erfordern würde.
Das Hauptziel ist nicht die Isolation, sondern die einfache Bereitstellung…
Sie müssen den Container nicht isolieren; Sie können ihn auf einer gerouteten Bridge oder auf einer Bridge ausführen, die einen Port Ihres internen Netzwerks hat. Ersteres ist, wie wir ihn in der Produktion ausführen – siehe hier ein Video von @mpalmer, das erklärt, wie es funktioniert.
Wenn jemand dies wirklich tun möchte, kann er den gleichen Schritten folgen, die das Dockerfile selbst unternimmt, um die richtigen Versionen aller Tools zu erhalten, die vom unterstützten Image verwendet werden.
Wir haben keine Anleitung, da dies jemanden erfordern würde, sie zu pflegen, und die überwiegende Mehrheit der Leute, die dies wollen, hat entweder:
wenig Erfahrung mit Servern
genug Wissen, um das, was wir anbieten, zu nehmen und an ihre Bedürfnisse anzupassen
Ich weiß zum Beispiel, dass es Leute gibt, die Launcher verwenden, um ein Image zu erstellen, das über ihre eigenen Tools (sei es lxc, kubernetes, was auch immer) bereitgestellt wird, und das funktioniert für sie.
Der Versuch, (kostenlos) jeden zu unterstützen, der seine eigene benutzerdefinierte Installation einer komplizierten Software verwendet, wäre ein Albtraum.
Docker ist ein Mittelweg. Unser System ist nicht perfekt; es ist im Laufe der Zeit etwas gewachsen und wir spüren sicherlich den Schmerz einiger überfälliger Refactorings. Wir haben Launcher erstellt, bevor es docker-compose überhaupt gab.
Wir beabsichtigen, es zu refaktorieren und/oder zu docker-compose zu wechseln, aber das hat im Moment keine Priorität.
Es ist nicht so schwer, den Launcher zu starten, um Discourse mit den Umgebungsvariablen zu starten, die für Nginx Reverse Proxy erforderlich sind. Meistens fügen Sie einfach die Umgebungsvariable zum YML hinzu oder fügen sie zu dem hinzu, was Sie von ./launcher start-command app erhalten.
docker-compose war nicht sehr nützlich, als Discourse gestartet wurde, und existierte möglicherweise gar nicht.
Ich hasse Docker (es ist zu einfach für mich, jedes Kind kann es, also nichts Besonderes! Gähn)! Und anstatt einfach den Code zu schreiben, damit er auch ohne die offizielle Docker-Variante funktioniert… ich verstehe es nicht! Selbst die offizielle Methode funktioniert nicht!
Und es gibt Leute, die Herausforderungen suchen oder diese sogar schon meistern! Für sie ist Docker sogar noch ein Hindernis, da sie sich auch noch mit Docker auseinandersetzen müssen!